如果是ASP,我采用如下的做法,但不知道PHP怎么做。dim result
result=InStr(1,Request.ServerVariables("HTTP_REFERER"),"myasp",1)
if result=0 or result=NULL then
Response.Redirect "hello.asp"
end if
result=InStr(1,Request.ServerVariables("HTTP_REFERER"),"myasp",1)
if result=0 or result=NULL then
Response.Redirect "hello.asp"
end if
if(!strpos($_SERVER['HTTP_REFERER'],'myasp'))
header('location:hello.asp');
其实从http协议上讲,要判断是不是由浏览器发送的请求,可以判断$_SERVER['HTTP_USER_AGENT'],它会返回客户端浏览器的一些信息,如果你的程序是自己构造的http请求不设置$_SERVER['HTTP_USER_AGENT']的话,它应该是空的。否则由浏览器发送的话,它的值就会包含一些msie之类的字符。
什么referer,HTTP_USER_AGENT的,通过socket或curl伪造http头都可以蒙混过去。