我一直在用XSS做一些测试,我创建了一个带有一个文本输入的简单表单,页面顶部的php回显了这个值,如下所示:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Mysite</title>
</head>
<body>
<?php if(isset($_POST['name'])) {
$name = $_POST['name'];
echo $name;
}
?>
<form action="" method="post">
<input type="text" name="name"/>
<input type="submit" value="Submit" />
</form>
</body>
</html>
我在文本输入中输入了一个javascript代码,如下所示:
<script type="text/javascript">alert('XSS!');</script>
当我在Google Chrome中执行此操作时,我什么都没有,没有输出,没有警告框,也没有错误。但是当我在Internet Explorer中查看它时,我会按预期获得警告框。
为什么会这样?
答案 0 :(得分:3)
答案 1 :(得分:0)
因为这是你正在打印的东西..没有浏览器应该保护它(或者你不应该依赖它)..你必须自己转换所有的HTML :) html encode
它......