PHP 安全和 XSS 攻击 - 获取错误拒绝执行 JavaScript 脚本。在请求中找到的脚本源代码

标签 php security xss code-injection

我正在浏览我的网站并进行安全审核。我只是简单地接受了我需要清理所有用户输入的事实,但我从未真正停下来尝试过真正发生的事情。我现在开始尝试。

我在 PHP 页面上有一个典型的联系表单。这是_POST荷兰国际集团数据。 $_POST["first_name"];等等

我这样做 $firstName = htmlspecialchars($_POST["first_name"]);清理并显示如下所示的消息。

echo $firstName . ', thank you for your interest. We'll be in touch soon!'

我开始玩这个,如果我输入类似 <script>alert('hello')</script> 的东西在名字字段中,htmlspecialchars完成它的工作并隐藏标签。

当我删除 htmlspecialchars 时脚本没有被转换,它在源代码中显示为 <script>alert('hello')</script>但是,它不会执行。

我的问题是,为什么不执行?这基本上不是 XSS 攻击会做的事情吗?我是不是误会了什么?

最佳答案

当我在 Chrome 中尝试此操作时,我在控制台中看到一个错误:

Refused to execute a JavaScript script. Source code of script found within request.

因此现代浏览器可能会执行此检查以防止它发生。无论如何,您都应该继续清理您的输入,但是检查您的控制台,您可能会看到这一点。

关于PHP 安全和 XSS 攻击 - 获取错误拒绝执行 JavaScript 脚本。在请求中找到的脚本源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11768633/

相关文章:

jsonp - 我是否需要清理 JSONP 调用中的回调参数?

javascript - 使用Javascript的CreateElement时防止XSS攻击

php - jQuery 手机 : Sending data from one page to the another

php - 尝试测试 Symfony 2 应用程序时出现 SQL 错误 - 列已存在,表丢失

php - 为什么我从 JS 和 PHP Mersenne Twister 实现中得到不同的值?

php - 删除PHP中的部分字符串

Java EE 安全性 - 使用哪种方法?

windows - 如果 OpenProcess() 因 ACCESS_DENIED 失败,如何从 pid 获取进程文件名?

.NET:Thread 类怎么会被滥用,它不是密封的吗?

php - mysqli_real_escape_string() 是否足以防止 SQL 注入(inject)?