
[asp]如何防止从本地电脑提交表单到服务器页面,同时又可以允许在邮件中点击链接访问服务器页面? 50
ASP代码为:Dimservername1,servername2'防止异地提交表单servername1=Cstr(Request.ServerVariables("H...
ASP代码为:
Dim servername1,servername2 '防止异地提交表单
servername1=Cstr(Request.ServerVariables("HTTP_REFERER"))
servername2=Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(servername1,8,len(servername2))<>servername2 then
response.write"<script language=Javascript>alert('提交方法有误');"
response.write"javascript:history.go(-1)</script>"
response.end
end if
--------
这样的方法虽然防止了前者,但是后者一样会误判,如何解决? 展开
Dim servername1,servername2 '防止异地提交表单
servername1=Cstr(Request.ServerVariables("HTTP_REFERER"))
servername2=Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(servername1,8,len(servername2))<>servername2 then
response.write"<script language=Javascript>alert('提交方法有误');"
response.write"javascript:history.go(-1)</script>"
response.end
end if
--------
这样的方法虽然防止了前者,但是后者一样会误判,如何解决? 展开
1个回答
展开全部
表单一般是post提交
邮件中点击链接一般是get请求
所以,你可以判断请求方式
Dim servername1,servername2 '防止异地提交表单
servername1=Cstr(Request.ServerVariables("HTTP_REFERER"))
servername2=Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(servername1,8,len(servername2))<>servername2 and Request.form then
response.write"<script language=Javascript>alert('提交方法有误');"
response.write"javascript:history.go(-1)</script>"
response.end
end if
上面的代码只是一个示范而已,不一定能用,具体的,你自己再研究研究
邮件中点击链接一般是get请求
所以,你可以判断请求方式
Dim servername1,servername2 '防止异地提交表单
servername1=Cstr(Request.ServerVariables("HTTP_REFERER"))
servername2=Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(servername1,8,len(servername2))<>servername2 and Request.form then
response.write"<script language=Javascript>alert('提交方法有误');"
response.write"javascript:history.go(-1)</script>"
response.end
end if
上面的代码只是一个示范而已,不一定能用,具体的,你自己再研究研究
更多追问追答
追问
POST提交时正规页面用,但是也有人会直接在地址栏输入,这样就变成GET了,光靠这个也不安全啊。
追答
表单提交,在地址栏输入,有用吗?
确切的说,post提交,是不会接受地址栏内的任何参数的
除非,你还想阻止get参数
但似乎,你提问的问题,只是想检测post请求啊
而且,表单,除非做搜索,否则,都是用post请求的
地址栏和post,本就无关联
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询