如何防止 js(XSS)攻击 解决方法

了解js (xss)攻击https://blog.csdn.net/qq_30202073/article/details/87777264

规避方法

过滤特殊字符(第一种)
避免XSS的方法之一主要是将用户所提供的内容进行过滤,许多语言都有提供对HTML的过滤:

  • PHP的htmlentities()或是htmlspecialchars()。
  • Python的cgi.escape()。
  • ASP的Server.HTMLEncode()。
  • ASP.NET的Server.HtmlEncode()或功能更强的Microsoft Anti-Cross Site Scripting Library
  • Java的xssprotect (Open Source Library)。
  • Node.js的node-validator。

使用HTTP头指定类型(第二种)
很多时候可以使用HTTP头指定内容的类型,使得输出的内容避免被作为HTML解析。如在PHP语言中使用以下代码:

<?php
   header('Content-Type: text/javascript; charset=utf-8');
?>

即可强行指定输出内容为文本/JavaScript脚本(顺便指定了内容编码),而非可以引发攻击的HTML。

预防XSS攻击

从根本上说,解决办法是消除网站的XSS漏洞,这就需要网站开发者运用转义安全字符等手段,始终把安全放在心上。

简单点,就是过滤从表单提交来的数据,使用php过滤函数就可以达到很好的目的。

htmlspecialchars() 函数

代码实例:

<?php  

if (isset($_POST['name'])){  

    $str = trim($_POST['name']);  //清理空格  

    $str = strip_tags($str);   //过滤html标签  

    $str = htmlspecialchars($str);   //将字符内容转化为html实体  

    $str = addslashes($str);  //防止SQL注入

    echo $str;  

}  

猜你喜欢

转载自blog.csdn.net/qq_30202073/article/details/87777114