问题:我只想允许我的网站表单;提交表单时<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隐藏查询字符串,更聪明的用户仍然可以通过检查输入标记来访问页面。保护像这样的页面的确保方法是什么?不会污染查询字符串。
答案 0 :(得分:0)
对于mod_rewrite,这是不可靠的。
只需检查表格值是否填写正确,无论如何都要做。如果未填充值,请使用
重定向header('Location: elsewhere.html');
或简单地返回另一个视图。