2013-08-29 87 views
0

我有一個用PHP,HTML和JavaScript首先編寫的網頁。我想阻止(拒絕訪問頁面並顯示一條消息)訪問我的網頁,該網頁沒有在瀏覽器設置中啓用JavaScript或者不支持它,因爲那時我的頁面沒有正確顯示,並且有很多錯誤(還有安全漏洞!)。我知道有可能在HTML中編寫<noscript>語句,但是除了這個文本以外的其他東西是可以顯示的,並且它也是可移動的(例如通過檢查器功能是瀏覽器),我說沒有JS,我的頁面包含錯誤。所以,我的問題:有沒有辦法阻止訪問*不支持使用PHP的我的網頁的用戶?任何其他建議,歡迎:)爲非JavaScript用戶提供塊訪問

*阻止訪問手段 - 拒絕訪問主頁,並顯示一條消息

+3

你不能拒絕訪問,但你可以給出一個不錯的信息並隱藏你的主要內容。 – 2013-08-29 19:05:49

+0

有可能在這裏有一些有用的答案:http://stackoverflow.com/questions/4454551/check-if-javascript-is-enabled-with-php – showdev

+3

_...有很多的錯誤(也安全漏洞! )_ - 那是你的第一個問題。依賴於JS的安全** c ** ** – SeanWM

回答

1

如果你真的真的需要這個。我說三個真的是因爲我認爲大多數時候你可以選擇替代這個。

使用JavaScript設置cookie,並將其與請求一起傳遞給服務器,並使用傳遞的請求驗證服務器上的cookie。如果你能夠驗證cookie你的客戶端沒有JS。

更好的方法是從單點重定向js和非js用戶。在您的index.html文件中說,您已經有了JavaScript代碼,可以將您的客戶或訪問者重定向到不同的網址。這樣你就知道這些用戶已經啓用了js,否則他們不會被重定向。

1

你可以做一個「子」頁面加載通過AJAX它的全部內容。這不會阻止人們直接點擊您的URLS。不要相信客戶。

4

這是不可能以真正安全的方式。你可以只提供一個空白的頁面,然後使用JS實際加載內容(例如通過AJAX),但問題是JS必須從某處加載該代碼,並且攻擊者可以做到這一點太。但這是真正的問題:

用戶可以控制其瀏覽器。 JS是客戶端代碼。攻擊者可能會選擇運行,不運行或更改,然後運行您的JS。攻擊者甚至可以運行自己的JS來調用或替換你的函數。依賴於您的JS的任何安全性默認情況下都會中斷。

因此,儘管您可以(和人們)在您的頁面上顯示警告消息,然後通過JS代碼隱藏或使用JS加載您的內容,但它永遠不會安全。

0

其他的答案和評論已經包括了很多,爲什麼你真的不能技術上使用Javascript,但是,一個簡單的解決方法去做只有啓用JS東西阻止訪問的詳細信息,是調用JS功能後, DOM負載:

<script type="text/javascript"> 
    window.onload = do_something(); 
    </script> 
</body> 
</html> 

do_something(),則可能包括簡單的事情,像開關塊元素的可見性,例如,隱藏非JS消息,再加上推出AJAX裝載機還是從上面已經提出的東西,別的東西。

相關問題