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

时间:2016-09-22 09:38:14

标签: javascript jquery xss

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

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

有人可以帮助防止使用示例代码进行跨站点脚本编写吗?

1 个答案:

答案 0 :(得分:2)

跨方脚本攻击比你想象的要大得多,并且不仅限于你提到的代码<script>alert("Hello")</script>。所以严格限于你的问题,这么多的php库可以阻止这些类型的XSS攻击。我会提到以下几点。

  • HTML Purifier
  • PHP AntiXSS
  • xssprotect
  • XSS HTML过滤器
  • xss_clean.php过滤器
  • 更新php版本

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

  

PHP Anti-XSS Library开发用于防止XSS(跨站点   脚本)Web应用程序上的漏洞。 PHP Anti-XSS   库自动检测所需数据的编码   过滤,如果您希望再次对数据进行编码。还有3个   过滤选项的类型。

此处有3种过滤选项

  1. 黑名单过滤
  2. 白名单过滤
  3. Graylist Filtering
  4. 用法:

    方法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.