Home > Backend Development > PHP Tutorial > thinkphp框架如何有效防止xss攻击

thinkphp框架如何有效防止xss攻击

WBOY
Release: 2016-06-06 20:47:35
Original
1593 people have browsed it

现在使用的thinkphp3.1.3,貌似这一版本thinkphp对url和表单提交默认做了过滤处理了,因为在一些搜索框和url参数中添加恶意的js脚本都没有被执行,但是还是不放心,thinkphp这个框架没有用多久,但是xss现在应该是越来越多了,想请问各位有经验的大大,用thinkphp,做哪些配置,或者在有用户提交的地方添加什么过滤代码可以让网站更有效的防止xss攻击

回复内容:

现在使用的thinkphp3.1.3,貌似这一版本thinkphp对url和表单提交默认做了过滤处理了,因为在一些搜索框和url参数中添加恶意的js脚本都没有被执行,但是还是不放心,thinkphp这个框架没有用多久,但是xss现在应该是越来越多了,想请问各位有经验的大大,用thinkphp,做哪些配置,或者在有用户提交的地方添加什么过滤代码可以让网站更有效的防止xss攻击

XSS(跨站脚本攻击)可以用于窃取其他用户的Cookie信息,要避免此类问题,可以采用如下解决方案:
1。直接过滤所有的JavaScript脚本;
2.转义Html元字符,使用htmlentities、htmlspecialchars等函数;
3.系统的扩展函数库提供了XSS安全过滤的remove_xss方法;
4.对URL访问的一些系统变量做XSS处理。

相关:
http://www.hdj.me/thinkphp-deny-xss
http://www.2cto.com/Article/201307/231292.html
http://www.oschina.net/question/582888_117471

<code>function remove_xss($val) {
   // remove all non-printable characters. CR(0a) and LF(0b) and TAB(9) are allowed
   // this prevents some character re-spacing such as <java>
   // note that you have to handle splits with \n, \r, and \t later since they *are* allowed in some inputs
   $val = preg_replace('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/', '', $val);
   // straight replacements, the user should never need these since they're normal characters
   // this prevents like <img  src="@avascript:alert('XSS')" alt="thinkphp框架如何有效防止xss攻击" >
   $search = 'abcdefghijklmnopqrstuvwxyz';
   $search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
   $search .= '1234567890!@#$%^&*()';
   $search .= '~`";:?+/={}[]-_|\'\\';
   for ($i = 0; $i  0) {
               $pattern .= '(';
               $pattern .= '([xX]0{0,8}([9ab]);)';
               $pattern .= '|';
               $pattern .= '|(�{0,8}([9|10|13]);)';
               $pattern .= ')*';
            }
            $pattern .= $ra[$i][$j];
         }
         $pattern .= '/i';
         $replacement = substr($ra[$i], 0, 2).'<x>'.substr($ra[$i], 2); // add in  to nerf the tag
         $val = preg_replace($pattern, $replacement, $val); // filter out the hex tags
         if ($val_before == $val) {
            // no replacements were made, so exit the loop
            $found = false;
         }
      }
   }
   return $val;
}
</x></java></code>
Copy after login

么么哒~每当给各位做点贡献,我就感觉胸前的红领巾更鲜艳了

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template