[英]Is there a way to password protect HTML pages without using a server side language?
我有一系列相互鏈接的網頁,我想通過要求用戶提供登錄名和密碼來限制對這些頁面的訪問。 但是,我的主機帳戶目前沒有為服務器端腳本提供任何工具 - 有什么方法可以僅使用客戶端腳本來實現此目標?
我想知道以下程序是如何工作的 -
http://www.myzips.com/software/HTML-Password.phtml
澄清:感謝您的投入。 但是,如果我正在配置 Web 服務器,那么用戶是否有可能輸入用戶名和密碼?
無法創建安全的客戶端腳本。 如果用戶有權訪問它,則它是不安全的。
如果您的主機正在運行 apache,您可以使用 .htaccess 來保護文件夾,在 IIS 上,您可以通過目錄安全來執行相同的操作。
以下是我自己實現的使用加密的此問題的有效解決方案。
這里的一些用戶建議使用基於加密的方法來保護客戶端密碼。 我也需要這個功能,所以我自己實現了。 密碼使用 PBKDF2 散列,然后使用 AES256 加密頁面。
該工具托管在這里:
https://www.maxlaumeister.com/pagecrypt/
此處提供源代碼:
https://github.com/MaxLaumeister/pagecrypt
項目描述,來自項目頁面:
PageCrypt - 密碼保護 HTML
此工具可讓您安全地密碼保護 HTML 文件。 與其他密碼保護工具不同,此工具:
沒有服務器端組件(此工具及其受密碼保護的頁面完全在 javascript 中運行)。
使用強加密,因此無法繞過密碼保護。
您只需選擇一個 HTML 文件和密碼,您的頁面就會受到密碼保護。
您可以使用以下內容創建文件 .htaccess:
AuthUserFile path/to/password.txt
AuthGroupFile /dev/null
AuthName "Acces Restreint"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>
然后您必須創建 .htpasswd 文件。
可以實現這一點,盡管您可能會發現簡單地切換到不同的托管服務提供商會更容易。 這是可能的:
首先,使用對稱加密算法和隨機密鑰(主密鑰)對整個主體進行加密。 將此密文作為文本存儲在 javascript 塊中。
對於所有用戶,生成一個 javascript 哈希,將他們的用戶名映射到主密鑰的加密副本(使用每個用戶密鑰加密)。
最后,創建一個要求用戶名和密碼的網頁。 輸入后,使用用戶名查找加密的主密鑰。 使用用戶輸入的密碼解密,並使用生成的主密鑰解鎖原始主體。 使用 javascript 將現有的 html 正文替換為解密后的正文。
我不知道客戶端腳本,但您可以使用 Web 服務器來限制對您網站的訪問。
在 IIS 中可以使用“目錄安全”選項卡設置:配置 IIS 網站身份驗證
如果每個人只有一個密碼,您可以嘗試一種公鑰類型的方法。 您可以提供一個簡單的腳本來執行 RSA 解密(您需要在可以訪問某種類型的編程軟件的地方進行原始加密)。 然后,您可以將內容作為加密字符串提供。 你會顯示一個密碼框,用戶輸入密碼,然后根據密碼解密字符串。 如果密碼正確,字符串將正確解密,並顯示頁面。 否則,頁面將看起來像一堆垃圾。 但是要小心,因為這種客戶端方法很容易受到蠻力攻擊。
當然,如果安全不是什么大問題。 從本質上講,您將放置一扇門,上面寫着“如果您不知道密碼,請不要進來”。 任何不使用服務器端技術的東西都可能使用 JavaScript,以及受保護目錄中的文件來存儲密碼。 然而,這不是密碼保護。 可以禁用 JavaScript,這將導致頁面加載。 毫無疑問,這將通過隱藏內容來解決……但內容仍然可以通過源查看。 還有其他一些方法,但如果您有真正值得用密碼保護的內容,這不是一個好方法。
是的,這是可能的,但它不是很漂亮,甚至不是很好。
您將需要一個JavaScript 散列腳本
或者你可以使用一個神秘的 html 文件名作為密碼和 ajax 在 / 瀏覽到該頁面(如果存在):-)
與其他建議一樣安全(或不安全),但可能更容易實施。
為此,您不需要公鑰——實際上,公鑰解密僅限於加密其他對稱密鑰和證書,因為它在計算上非常昂貴。 你只需要一個共享的秘密。
使用 AES 加密網頁(例如),使用從密碼短語派生的密鑰(通過散列)。 然后,您必須將密碼安全地傳達給用戶並編寫一些 javascript 來下載加密內容、提示輸入密碼、解密數據並將其合並到 DOM 中。
它相當混亂而且非常脆弱——所有用戶只有一個密碼,一旦它受到威脅,你就必須更換服務器上的東西,並希望谷歌沒有緩存它......建議你轉向真正的 ISP
至於你所指的 HTML 密碼程序,沒有辦法知道它不是萬能的或壞的……“強算法的最佳安全性”這句話並不令人鼓舞!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.