2016-09-22 77 views
1

我想在文本区域停止跨站点脚本编写。以下为输入数据的代码将是脆弱的文本区域:如何使用javascript防止跨站点脚本编写

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

能否评价一下这个人的帮助,以防止与示例代码跨站点脚本?

回答

2

跨边界脚本攻击比你想象的大得多,并且肯定不限于你提到的代码<script>alert("Hello")</script>。所以严格限制你的问题这些类型的XSS攻击可以通过很多php库来防止。我会在下面提到几个。

  • HTML过滤
  • PHP AntiXSS
  • xssprotect
  • XSS HTML筛选
  • xss_clean.php过滤
  • 更新PHP版本

让我们对最prominant方法谈防止XSS攻击,这是Php AntiXss

PHP防XSS库防止对Web应用程序的XSS(跨站脚本 )漏洞开发。 PHP Anti-XSS 库自动检测您想要的数据的编码 过滤器,并且如果您希望再次编码您的数据。还有3 类型的过滤选项。这里过滤选项

3类型

  1. 黑名单过滤
  2. 白名单过滤
  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. 
+0

非常感谢赛基兰!我们可以在不使用任何库的情况下做到这一点..我只需要在javascript中实现这一点。 – Raj

+0

@Raj我会就此问题进行练习并尽快报告。据我所知,我们需要使用一些或其他库。 –