| 给大家一个防止外部提交的函数 |
|
| |
|
在config.asp后面加上这样一串代码
function ChkPost() dim server_v1,server_v2 chkpost=false server_v1=Cstr(Request.ServerVariables("HTTP_REFERER")) server_v2=Cstr(Request.ServerVariables("SERVER_NAME")) if mid(server_v1,8,len(server_v2))<>server_v2 then chkpost=false else chkpost=true end if end function
然后在那些问题页面里找个合适的位置插入以下代码:
if not ChkPost() then response.write "请不要尝试漏洞或者请您关闭防火墙!" response.end end if
看不懂的朋友可以看看下面的例子:
文件:clearpk.asp
<!--#include file="config.asp" --> <!--#include file="conn.asp" --> <% n=request.form("username") p=request.form("userchr")
if instr(n,"")<>0 or instr(n,";")<>0 or instr(n,"&")<>0 or instr(n,"%")<>0 then response.write "您所输入的数据包含非法字符,对不起!" response.end end if
if instr(p,"")<>0 or instr(p,";")<>0 or instr(p,"&")<>0 or instr(p,"%")<>0 then response.write "您所输入的数据包含非法字符,对不起!" response.end end if
if n<>"" and p<>"" then if not ChkPost() then response.write "请不要尝试漏洞或者请您关闭防火墙!" response.end end if set rs1 = Server.CreateObject("ADODB.Recordset") sql="select * from Character where AccountID="&n&" and Name="&p&" and pklevel<>3" rs1.open sql,conn,1,3 if rs1.eof or rs1.bof then
防止通过网页修改数据库的方法之一 对所有.asp文件进行查找,凡maxlength的地方请注意: 把所有这样的语名通通改为maxlength=18及以下,例如角色id你只需要maxlength=10 就可以了,只有身份证需要18长度,其实的全部改小就可以了。 有的网站就出在了maxlength=40 在地方,别人可以在那儿打入完整的命令,并且会执行。 另外对每个输入的地方加进判断,不让输入以下字符: " ^ < > & @ . ` = 就可以防住大多数的破坏
| |
|
 |
频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。
| 原始作者:佚名 |
录入时间:2007-3-31 3:57:37 |
| 信息来源:不详 |
投稿信箱:itqoo@126.com |
|
|
 |
|
|
| 教程录入:itqoo 责任编辑:itqoo |
|
上一个教程: SQL 究竟是什么呢[扫盲篇]
下一个教程: 关掉法师守护魔法的设置 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |