Rumah > pembangunan bahagian belakang > tutorial php > thinkphp框架如何有效防止xss攻击

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

WBOY
Lepaskan: 2016-06-06 20:47:35
asal
1603 orang telah melayarinya

现在使用的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>
Salin selepas log masuk

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

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan