0

问题:我想只允许我网站的表格;<form action="link"提交我的表单后导航到 www.domain.com/link。但要拒绝直接访问 URL 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 隐藏了查询字符串,更聪明的用户仍然可以通过检查输入标签来访问页面。保护这样的页面的可靠方法是什么?不污染查询字符串。

4

1 回答 1

0

这对于 mod_rewrite 是不可靠的。

只需检查表单值是否正确填写,无论如何您都必须这样做。如果未填写值,请使用重定向

header('Location: elsewhere.html');

或者干脆返回另一个视图。

于 2013-04-19T06:09:55.127 回答