电脑安全

您当前的位置:主页 > 电脑安全 >

利用PHP编程防范XSS跨站脚本攻击-网络编程

来源:[db:来源]标题:   脚本    编辑:电脑技术全能网 时间:2019-09-18 18:00

原标题:利用PHP编程防范XSS跨站脚本攻击-网络编程
   海内很多论坛都存在跨站剧本破绽,外洋也许多如许的例子,乃至Google也呈现过,不外在12月初时修改了。(编者注:对于跨站剧本破绽攻打,读者可参阅《详解XSS跨站剧本攻打》)。跨站攻打很轻易便可以结构,并且十分隐藏,不易被查觉(平日偷取信息后立刻跳转回原页面)。  怎样攻打,在此不作阐明(也不要问我),重要谈谈怎样防备。起首,跨站剧本攻打都是因为对用户的输出没有停止严厉的过滤形成的,以是咱们必需在全部数据进入咱们的网站和数据库之前把能够的伤害拦阻。针对合法的HTML代码包含单双引号等,能够应用htmlentities() 。  <?php$str = "A 'quote' is <b>bold</b>";// Outputs: A 'quote' is <b>bold</b>echo htmlentities($str);// Outputs: A 'quote' is <b>bold</b>echo htmlentities($str, ENT_QUOTES);?>  如许能够使合法的剧本生效。  然而要留神一点,htmlentities()默许编码为 ISO-8859-1,假如你的合法剧本编码为别的,那末能够无奈过滤掉,同时扫瞄器却能够辨认和履行。这个成绩我先找几个站点测试后再说。  这里供给一个过滤合法剧本的函数:function RemoveXSS($val) {  // remove all non-printable characters. CR(0a) and LF(0b) and TAB(9) are allowed  // this prevents some character re-spacing such as <javascript>  // note that you have to handle splits with , , and later since they *are* allowed in some inputs  $val = preg_replace('/([x00-x08][x0b-x0c][x0e-x20])/', '', $val);  // straight replacements, the user should never need these since they're normal characters  // this prevents like <IMG SRC=&#X40&#X61&#X76&#X61&#X73&#X63&#X72&#X69&#X70&#X74&#X3A&#X61&    _#X6C&#X65&#X72&#X74&#X28&#X27&#X58&#X53&#X53&#X27&#X29>  $search = 'abcdefghijklmnopqrstuvwxyz';  $search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';  $search .= '1234567890!@#$%^&*()';  $search .= '~`";:? /={}[]-_|'';

上一篇:使用PHP程序来保护你的flash作品-网络编程

下一篇:没有了