Home  >  Article  >  Backend Development  >  如何防止用户手动进入某个页面

如何防止用户手动进入某个页面

WBOY
WBOYOriginal
2016-06-13 13:20:19846browse

怎么防止用户手动进入某个页面?
网站根目录下有与INDEX.PHP并列的PRIVATE.PHP页面,我现在只允许它被客户端程序调用,不允许被用户手动进入(比如:http://127.0.0.0/private.php),怎么设置?

------解决方案--------------------
判断他的来源请求地址或获取上一次请求地址

$_SERVER['HTTP_REFERER'];

这个不行可以考虑用js实现
------解决方案--------------------
最优的是$_SERVER['HTTP_REFERER'];做来源监测
另一种是设定session权限鉴定,普通用户session进行跳转或返回404头
可者是通过get或post一个参数来鉴权,对于不知规则的用户来说,突破也很困难
------解决方案--------------------
不一定要用session啊
你在PRIVATE。php 也是设定一个变量
例如 
if($flag == '值')
...
else
exit;...

你客户端调用的时候传这个值到这个页面获取它的值

这个值你可以自己设定
------解决方案--------------------
客户端传递加密数据 服务器端进行解密校对

剩下的不用我说了吧
------解决方案--------------------
1.客户端安装后,生成自己的公私钥,通过HTTPS保护自定义协议将GUID和公钥提交上去。

2,今后客户端连接服务端,首先使用私钥加密GUID,然后同GUID一起提交,服务端根据GUID选择对应的公钥解密验证GUID成功则认为客户端正常以便下发用于SESSION的COOKIE。

其实关键就2点:

1,客户端安装后初次HTTPS连服务端,如果认为服务器可能欺诈则客户端可以要求CA验证服务端发来的证书,否则可以直接信任服务端证书,并通过公私钥加密交换对称密钥完成客户度公私钥的提交。

2,其实就是HTTPS保护下完成信任关系的配置,玩过SCP/SSH的同学应该有数。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn