如果调用者未使用HTTPS,如何防止访问PHP文件?
我已经写了几个PHP Web服务,我通过URL传递参数。 为了防止未经授权的访问,我传入一个唯一的密钥作为参数之一。 我通过HTTPS调用PHP文件,我想知道是否有办法阻止脚本在未使用HTTPS的情况下运行。
稍微偏离主题,但如果您使用的是Apache Httpd和mod_ssl
,则可以通过将SSLRequireSSL
指令放置在.htaccess
或Directory配置中来强制SSL访问文件(和PHP脚本)。
if(empty($_SERVER['HTTPS'])) {
// ....
exit;
}
澄清:您希望客户端不会通过未加密的连接调用包含秘密令牌的url,是吗? 如果是这样,那么问题主要不在于你,而是与客户端的浏览器。 如果客户还没有使用安全连接,您可以将客户端重定向到安全连接,但即使您这样做,客户端在您重定向之前已经向您的服务器提出了不安全的,可以拦截的请求 !
Mozilla正在努力解决这个问题。 从Firefox 4开始,服务器可能会发送Strict-Transport-Security
标头,这将防止后续未加密的访问(尽管显然在标头发送之前仍可能发生未加密的访问)。
在hacks.mozilla.org进一步阅读
链接地址: http://www.djcxy.com/p/31171.html上一篇: How can I prevent access to PHP files if the caller isn't using HTTPS?
下一篇: how in htaccess can i redirect the user to https from http and back again