我想停止文本区域的跨站点脚本。以下代码作为输入数据将容易受到文本区域的影响:
<script>alert("Hello")</script>
有人可以帮助防止使用示例代码进行跨站点脚本编写吗?
答案 0 :(得分:2)
跨方脚本攻击比你想象的要大得多,并且不仅限于你提到的代码<script>alert("Hello")</script>
。所以严格限于你的问题,这么多的php库可以阻止这些类型的XSS攻击。我会提到以下几点。
让我们谈谈防止XSS攻击最突出的方法 Php AntiXss
PHP Anti-XSS Library开发用于防止XSS(跨站点 脚本)Web应用程序上的漏洞。 PHP Anti-XSS 库自动检测所需数据的编码 过滤,如果您希望再次对数据进行编码。还有3个 过滤选项的类型。
此处有3种过滤选项
用法:
方法1: 设置数据的编码
$data = AntiXSS::setEncoding($data, "UTF-8");
方法2:
设置数据过滤器
$data = AntiXSS::setFilter($data, "whitelist", "string");
热门用法:
Xssescape是一个用于防止交叉浏览器中的跨站点脚本(xss)攻击的软件包。
用法:
npm install xssescape
app.js
var xs = require('xssescape')
var htmlStr = "<script> alert(document.cookie); </script>";
xs.strictEscape(htmlStr);
或
var htmlStr = "<script> alert(document.cookie); </script>";
xs.unescape(htmlStr);
或
var browserURL = "http://example.com/?<script> document.cookie </script>";
xs.unSafeUrl('/home'); // eg. you can keep what ever you want as a path name.
// it will reload/refresh the page with /home after the default url.