|
![](http://bbs.wuxue.cc/data/attachment/common/cf/084625czydyp4mmbf4ampv.jpg)
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?中文注册
x
<p></p><p>网站要做足安全, 特别是对防SQL注入, 因为大多数程序员都会很粗心大意而导致网站被黑</p><p>php脚本:<br/>基本上php本身就带有类似功能的函数了, 比如mysql_real_escape_string, addslashes等. <br/>大多数虚拟主机商比如耐思尼克都会开启了magic_quotes_gpc这个选项, 那提交数据时, 会自动执行了addslashes这个函数, 这样就可以杜绝大多数的注入了<br/>另外因为mysql是不分数字还是文本,都可以用''来括住, 所以建议在写sql的时候, 参数都用''来括起来<br/>使用方法如下:<br/>$query = mysql_real_escape_string("SELECT * FROM products WHERE name='$productname'");</p><p>asp脚本:<br/>FUNCTION CHECKSTR(ISTR)<br/>DIM ISTR_FORM,SQL_KILL,SQL_KILL_1,SQL_KILL_2,ISTR_KILL <br/>IF ISTR="" THEN EXIT FUNCTION<br/>ISTR=LCase(ISTR)<br/>ISTR_FORM=ISTR<br/>SQL_KILL="'|and|exec|insert<br/>|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare|set|;|from|="<br/>SQL_KILL_1=SPLIT(SQL_KILL,"|")<br/>FOR EACH SQL_KILL_2 IN SQL_KILL_1<br/>ISTR=REPLACE(ISTR,SQL_KILL_2,"")<br/>NEXT<br/>CHECKSTR=ISTR<br/>ISTR_KILL=REPLACE(ISTR_FORM,ISTR,"")<br/>IF ISTR<>ISTR_FORM THEN<br/>RESPONSE.WRITE "<script>alert('警告: 您提交的数据["&ISTR_FORM&"]中含有非法字符 ["&ISTR_KILL&"]');history.back();</Script>"<br/>RESPONSE.END<br/>END IF<br/>END FUNCTION</p><p>C#脚本:</p><p>bool CheckParams(params object[] args)<br/>{<br/> string[] Lawlesses={"=","'"};<br/> if(Lawlesses==null||Lawlesses.Length<=0)return true;<br/> //构造正则表达式,例 awlesses是=号和'号,则正则表达式为 .*[=}'].* (正则表达式相关内容请见MSDN)<br/> //另外,由于我是想做通用而且容易修改的<br/>函数,所以多了一步由字符数组到正则表达式,实际使用中,直接写正则表达式亦可;<br/> string str_Regex=".*[";<br/> for(int i=0;i< Lawlesses.Length-1;i++)<br/> str_Regex+=Lawlesses+"|";<br/> str_Regex+=Lawlesses[Lawlesses.Length-1]+"].*";<br/> //<br/> foreach(object arg in args)<br/> {<br/> if(arg is string)//如果是字符串,直接检查<br/> {<br/> if(Regex.Matches(arg.ToString(),str_Regex).Count>0)<br/> return false;<br/> }<br/> else if(arg is ICollection)//如果是一个集合,则检查集合内元素是否字符串,是字符串,就进行检查<br/> {<br/> foreach(object obj in (ICollection)arg)<br/> {<br/> if(obj is string)<br/> {<br/> if(Regex.Matches<br/>(obj.ToString(),str_Regex).Count>0)<br/> return false;<br/> }<br/> }<br/> }<br/> }<br/> return true;<br/>}</p><p></p> |
|