javascript - 如何使用 javascript 防止跨站点脚本

标签 javascript jquery xss

我想停止文本区域上的跨站点脚本。下面的代码作为输入数据将容易受到文本区域的攻击:

<script>alert("Hello")</script>

任何人都可以帮助防止使用示例代码的跨站点脚本吗?

最佳答案

跨端脚本攻击比你想象的要大得多,而且绝对不限于你提到的代码<script>alert("Hello")</script> .所以严格限制你的问题,这些类型的 XSS 攻击可以被这么多的 php 库阻止。我将在下面提到一些。

  • HTML 净化器
  • PHP 反 XSS
  • xss保护
  • XSS HTML 过滤器
  • xss_clean.php 过滤器
  • 更新 php 版本

让我们来谈谈防止XSS攻击最突出的方法是Php AntiXss

PHP Anti-XSS Library developing for prevent the XSS(Cross Site Scripting) vulnerabilities on the web applications. PHP Anti-XSS Library automatically detect the encoding of the data that you want filter and if you wish its encoding your data again. Also there are 3 type of filtering option.

这里有3种过滤选项

  1. 黑名单过滤
  2. 白名单过滤
  3. 灰名单过滤

用法:

方法 1: 设置数据的编码

$data = AntiXSS::setEncoding($data, "UTF-8");

方法二:

设置数据过滤器

$data = AntiXSS::setFilter($data, "whitelist", "string");

常用用法:

Xssescape 是一个用于防止跨浏览器中的跨站脚本(xss)攻击的包。

用法:

npm install xssescape

应用程序.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.

关于javascript - 如何使用 javascript 防止跨站点脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39635472/

相关文章:

asp.net - 在哪里可以找到或复制产生 HttpRequestValidationException 的代码

javascript - ajax 表单不起作用

html - 避免使用像 <pre> 这样的 HTML 标签的 XSS

javascript - 将键数组转换为键值对对象

asp.net - ASP :DropDownList - invalid postback or callback argument when adding options via JavaScript/jQuery

javascript - .get() 在 jQuery API 中没有索引的原因?

javascript - 使用 Knockout.js 控制 Flash 插件,冲突的 jQuery.tmpl 和 Knockout-Sortable

jquery - 尝试对 iframe 进行跨脚本编写时,如何禁用访问被拒绝消息?

javascript - 如何启用禁用 MVVM 的 Kendo DropDownList?

javascript - Mongoose pre save 没有运行鉴别器