网站设计的信息安全隐患预防
用$fromTagOpen记录'<'之后的所有字符串,那么当前处理的标签名为:$currentTag=substr($fromTagOpen,0,$tagOpen_end);当然还要检查是否为关闭标签,如果是关闭标签还要取出'/',检测和处理代码如下:if(substr($currentTag,0,1)=="/"){$isCloseTag=TRUE;$tagName=substr($tagName,1);}找到标签名之后,就可以进行过滤,代码如下if((!preg_match("/^[a-z][a-z0-9]*$/i",$tagName))||(!$tagName)||((in_array(strtolower($tagName),$this->tagBlacklist))&&($this->xssAuto))){$postTag=substr($postTag,($tagLength+2));$tagOpen_start=strpos($postTag,'<');}这样黑名单中的标签和那些非标准的html标签就被过滤掉了,过滤后的内容存储在$postTag中。
获取属性的方法就是在'<'和'>'之间'='两边就是属性名和属性值。代码如下while($currentSpace!==FALSE){$fromSpace=substr($tagLeft,($currentSpace+1));$nextSpace=strpos($fromSpace,'');$openQuotes=strpos($fromSpace,'"');$closeQuotes=strpos(substr($fromSpace,($openQuotes+1)),'"')+$openQuotes+1;if(strpos($fromSpace,'=')!==FALSE){if(($openQuotes!==FALSE)&&(strpos(sub-str($fromSpace,($openQuotes+1)),'"')!==FALSE))$attr=substr($fromSpace,0,($closeQuotes+1));else$attr=substr($fromSpace,0,$nextSpace);}else$attr=substr($fromSpace,0,$nextSpace);if(!$attr)$attr=$fromSpace;$attrSet[]=$attr;$tagLeft=substr($fromSpace,strlen($attr));$currentSpace=strpos($tagLeft,'');}这样所有的属性都被存进$attrSet数组中了。方便调用filterAttr()函数对属性进行过滤。
3结语
对电子商务网站设计中常见的漏洞进行了介绍,并针对电子商务网站常见的安全隐患和漏洞给出了相应的解决方案,尤其是本文设计的电子商务网站攻击过滤类,能很好的增加电子商务网站的信息安全性,使得消