电气K哥 2018-12-21 21:15 采纳率: 0%
浏览 1178

关于php输出html转义js代码不能执行问题

我把< s c r i p t>alert('123123')</ s c r i p t>转义成&#60&#115&#99&#114&#105&#112&#116&#62&#97&#108&#101&#114&#116&#40&#39&#49&#50&#51&#39&#41&#60&#47&#115&#99&#114&#105&#112&#116&#62

然后如下代码
<?php
$abc='&#60&#115&#99&#114&#105&#112&#116&#62&#97&#108&#101&#114&#116&#40&#39&#49&#50&#51&#39&#41&#60&#47&#115&#99&#114&#105&#112&#116&#62';
echo $abc;

?>
这里只是输出显示
< s c r i p t>alert('123')</ s c r i p t>
却没有执行

但是如果改成
<?php
$abc="< s c r i p t>alert('123123')</ s c r i p t>";
echo $abc;

?>
却能弹出框123,为什么呢

  • 写回答

1条回答 默认 最新

  • crf_moonlight 2018-12-21 13:22
    关注

    尖括号, 下划线等特殊字符会自动进行转义, 但&#开头的字符就是说就要指定输出那个字符

    可以用htmlspecialchars()函数,

    <?php
    $abc="<script>alert('123')</script>";
    echo htmlspecialchars($abc);
    ?>
    
    
    评论

报告相同问题?