我正在做一些測試,同時試圖提供一個答案mod-rewrite redirect but prevent direct access。安全性如何在htaccess重寫規則中追加祕密令牌作爲查詢字符串?
原始問題的目標是基本上掩蓋
example.com/public/foo
爲example.com/foo
而禁止訪問的真正網址example.com/public/foo
。
有一次,我發現了一個可能的解決方案追加令牌至改寫URL的查詢字符串,
RewriteCond %{REQUEST_URI} !/public/
RewriteRule ^(.*)$ /public/$1?token=SECRET_TOKEN [L]
RewriteCond %{REQUEST_URI} /public/
RewriteCond %{QUERY_STRING} !token=SECRET_TOKEN
RewriteRule ^(.*)$/[R=403,L]
我意識到(與Chrome的DevTools),我實在看不出這個令牌在請求標題。
據我所知,是因爲第一RewriteRule
不會觸發客戶端上的重定向而這一切都要重寫過程發生在服務器中。
如果我說得對,這SECRET_TOKEN
是安全的,不是嗎? (通過安全的,我的意思是它不能由客戶以任何方式被稱爲)
非常感謝你的完整答案!我一直在做'.htaccess'重寫/重定向多年,至今我仍然學到了很多東西! –