原来html的转义字符只能显示不能作为代码执行

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
&#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
</body>
</html>

这个页面,只能打印出

<script>alert('123')</script>

但是如果改成这样

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>

<script>alert('123')</script>

</body>
</html>

可以弹框

说明转义字符在html页面解析的时候不能立即执行,它只是把字符转义了,用于显示

类似的php代码

<?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';
$abcd="<script>alert('123123')</script>";
echo $abc;

?>

只能显示出<script>alert('123')</script>

如果改成

<?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';
$abcd="<script>alert('123123')</script>";
echo $abcd;

?>

则会弹窗

这就告诉我们用xss脚本注入,通过转义字符的方式是没戏的

猜你喜欢

转载自blog.csdn.net/a843538946/article/details/85205115