我有一个文件,我不希望用户能够自己导航到。但是,如果他们单击一个链接将它们发送到那里,那么该页面可以正常工作。我目前有我的htaccess文件设置如此。
<Files "success.php">
Order Allow,Deny
Deny from all
</Files>
success.php
是文件的名称,在success.php
的目录中,我在htaccess文件中有以下内容:
RewriteRule /?\.htaccess$ - [F,L]
RewriteRule ^/?admin/paypal/success\.php$ - [F,L]
如果用户指向那里,用户仍然可以访问success.php
,因为我知道如果您尝试在那里导航,则会显示403错误。
如果是这样的话会阻止他们被指示,那么我有办法解决这个问题吗?
答案 0 :(得分:0)
当我在浏览器的位置栏中输入“success.php”的URL并按回车键时,我的浏览器发送了success.php的请求。
当我访问您的网站并点击链接以转到“success.php”时,我的浏览器会发送成功请求。
它完全相同,只是因为我点击了您网站上的链接而不是在我的浏览器中输入它,两者都要求完全相同。因此,当您拒绝访问时,您拒绝所有访问权限。你需要检查的是“Referer”标题,哪些浏览器可以(可选)包含在请求中,让网络服务器知道它来自哪个URL。参考者很容易被伪造或有时被遗忘,因此检查参考者并不是一种保证。
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^https?://example.com/ [NC]
RewriteRule ^admin/paypal/success\.php$ - [F,L]
因此,如果有人在“example.com”网站(例如您的网站)上加载任何页面,然后点击进入success.php页面的链接,那么他们就可以了。来自其他任何地方的任何其他访问都将是403。