3

我一直在使用 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 中查看它时,我得到了预期的警报框。

为什么会这样?

4

2 回答 2

3

Chrome 有一个内置的 xss 过滤器:

http://blog.securitee.org/?p=37

https://security.stackexchange.com/questions/16247/does-google-chrome-protect-against-cross-site-scripting-xss

于 2013-06-04T18:47:55.367 回答
0

因为这是您要打印的内容.. 没有浏览器应该保护它(或者您不应该依赖它).. 您必须自己转换所有 html :)html encode它...

于 2013-06-04T18:41:43.000 回答