禁止外部域访问

时间:2013-04-19 04:18:57

标签: regex apache .htaccess http mod-rewrite

问题:我只想允许我的网站表单;提交表单时<form action="link"导航至www.domain.com/link。但是要拒绝直接访问网址www.domain.com/link。

尝试:到目前为止,我知道如何禁止使用mod_rewrite进行访问:

Options -Multiviews
RewriteEngine on

RewriteCond %{REQUEST_URI} link
RewriteRule ^.*/?link/? - [F]

但我不知道如何允许表单提交来访问该页面。我探讨了使用带有秘密值的输入标记的可能性,以便在通过执行此操作提交表单时允许访问

Options -Multiviews
RewriteEngine on

RewriteCond %{REQUEST_URI} link
RewriteCond %{QUERY_STRING} !secret_key
RewriteRule ^.*/?link/? - [F]

备用:但只要用户想直接访问该页面,用户就可以将该密钥复制并粘贴为查询字符串。即使我使用mod_rewrite隐藏查询字符串,更聪明的用户仍然可以通过检查输入标记来访问页面。保护像这样的页面的确保方法是什么?不会污染查询字符串。

1 个答案:

答案 0 :(得分:0)

对于mod_rewrite,这是不可靠的。

只需检查表格值是否填写正确,无论如何都要做。如果未填充值,请使用

重定向
header('Location: elsewhere.html');

或简单地返回另一个视图。