我目前正在开发一个Apache模块,在将POST数据从请求解析到另一个页面后,我进行了一个内部重定向到PHP页面,该页面进行了一些最终操作并回显了HTML元刷新标记。这反过来又使浏览器刷新,请求第一页。
问题是,我不希望显式外部请求能够访问该页面,但让模块成功执行内部重定向。
有没有办法可以做到这一点?我尝试过使用:
<Directory /var/www/cc_jnlp/php/>
<Files session_init.php>
Order allow,deny
Deny from all
</Files>
</Directory>
...但这只会阻止所有请求,无论是否是内部重定向。
答案 0 :(得分:0)
尝试使用以下配置:
<Directory /var/www/cc_jnlp/php/>
<Files session_init.php>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Files>
</Directory>
答案 1 :(得分:0)
一种好的方法是发送带有请求的东西,将其识别为合法的。我的第一种方法是在服务器活动开始时生成一个大的随机数,并将其与数据一起传输。该模块将识别对该页面的所有请求,并拒绝那些不包含该特定查询参数的请求。问题是,这很容易受到强制攻击,而对付它的唯一方法就是增加密钥大小。
我的最终解决方案将使用Apache Notes系统来传输数据,并假设只有Apache服务器本身可以操作该数据,我们可以安全地拒绝所有不包含它的请求。