急问一个关于如果获得表单的提交来自哪里,谢谢!
|
admin
2011年11月20日 1:25
本文热度 7279
|
网站www.a.com中有一个网页a.htm, a.htm里面的form是提交到www.b.com/b.asp中.
请问:提交后,b.asp如何判断数据是从www.a.com提交的?
因为我怕有人另存了www.a.com/a.htm的源文件,修改了了里面的内容,然后提交给www.b.com/b.asp,所以一定要判断是不是从www.a.com提交过来的.谢谢!
该文章在 2011/11/20 1:25:32 编辑过
| |
全部评论4 |
|
admin
2011年11月20日 1:26
Function isSelfRefer()
Dim sHttp_Referer, sServer_Name
sHttp_Referer = CStr(Request.ServerVariables(HTTP_REFERER))
sServer_Name = CStr(Request.ServerVariables(SERVER_NAME))
If Mid(sHttp_Referer, 8, Len(sServer_Name)) = sServer_Name Then
IsSelfRefer = True
Else
IsSelfRefer = False
End If
End Function
if isSelfRefer() then
response.write ok
else
response.write no
end if
把以上代码放到aa.asp,如果是直接输入网址或者是从外部网部链接到本站,http://doamain/aa.asp 就会显示NO,
如果系从本站链接到aa.asp,或通过表单提交到aa.asp,将会显示ok
可以防止一些伪造表单向站内提交数据
该评论在 2011/11/20 1:26:15 编辑过
|
|
admin
2011年11月20日 1:26
获得客户端ip: Request.ServerVariables( REMOTE_ADDR )
获得提交页面地址:Request.ServerVariables( SCRIPT_NAME )
还有很多:如:
Request.ServerVariables( PATH_INFO ) &
Request.ServerVariables( APPL_MD_PATH ) &
Request.ServerVariables( APPL_PHYSICAL_PATH ) &
Request.ServerVariables( SCRIPT_NAME ) &
Request.ServerVariables( SERVER_NAME ) &
Request.ServerVariables( QUERY_STRING ) &
Request.ServerVariables( HTTP_REFER ) &
Request.ServerVariables( HTTP_REFERER ) &
Request.ServerVariables( LOCAL_ADDR ) &
Request.ServerVariables( REMOTE_ADDR ) &
该评论在 2011/11/20 1:26:46 编辑过
|
|
admin
2011年11月20日 1:27
可以做个验证:
简单的在a.asp加个session变量在b.asp判断
a.asp
session( check )= ok
****************************
b.asp
if session( check ) ok then
response.write <script language=javascript> alert( '你不能录 ');location.href= 'about:blank '; </script>
response.end
end if
该评论在 2011/11/20 1:28:08 编辑过
|
|
admin
2011年11月20日 11:42
应该在b.asp中增加一个 session( check)= 才能彻底封堵攻击:
if session( check) ok then
session( check)=
response.write <script language=javascript> alert( '你不能录 ');location.href= 'about:blank '; </script>
response.end
end if
该评论在 2011/11/20 11:42:18 编辑过
|