如何密码保护静态网站? (没有 htaccess)
How to password protect a static website? (without htaccess)
我有一个静态网站,我想用用户名 and/or 密码保护它,就像 apache 的 htaccess 一样,但我不想托管一个 apache 服务器来让它工作。如果没有前端 javascript,我该如何实现?
我最近使用前端 JS(太不安全,因为源是可见的):
<!DOCTYPE html>
<html lang="en">
<script>
var password = "password";
(function promptPass() {
var psw = prompt("Enter your Password");
while (psw !== password) {
alert("Incorrect Password");
return promptPass();
}
}());
alert('Correct Password\nWelcome!');
</script>
<body align="center">
<h1>Password Protected Site</h1>
<!-- Other page elements -->
</body>
</html>
据我所知,您至少需要一点 JS,因为 HTML 根本没有任何逻辑结构来完成您的需要。如果你真的想让它保持静态,我会使用强大的 JS 混淆器来解决它,比如 Obfuscator.io.
据我所知,进入前端的任何内容都将始终可见。因此,要用密码保护静态 html 页面,您应该用密码保护文件本身,或者您应该从重定向此页面的页面提示输入密码。
默认情况下,安全性必须在后端完成(正如其他人已经指出的那样)。
但是我想到了一件事要在前端做一些安全工作:
使用一些 JavaScript 向用户请求密码,并使用此密码解密已在交付页面中可用的一些加密字符串,并用解密后的数据替换 body
的内容。使用 JavaScript.
应该有一些库可用于 encrypting/decrypting 数据
如果我必须在这些条件下想出一些办法,我会考虑对用户名和密码进行哈希处理并将其用作服务器上文件的 url包含页面的实际内容,然后使用 JS 加载它。
但是,如果您真正关心安全性,而不只是让它对大多数用户构成挑战,那么在后端执行安全性仍然是一个更好的选择。
我有一个静态网站,我想用用户名 and/or 密码保护它,就像 apache 的 htaccess 一样,但我不想托管一个 apache 服务器来让它工作。如果没有前端 javascript,我该如何实现?
我最近使用前端 JS(太不安全,因为源是可见的):
<!DOCTYPE html>
<html lang="en">
<script>
var password = "password";
(function promptPass() {
var psw = prompt("Enter your Password");
while (psw !== password) {
alert("Incorrect Password");
return promptPass();
}
}());
alert('Correct Password\nWelcome!');
</script>
<body align="center">
<h1>Password Protected Site</h1>
<!-- Other page elements -->
</body>
</html>
据我所知,您至少需要一点 JS,因为 HTML 根本没有任何逻辑结构来完成您的需要。如果你真的想让它保持静态,我会使用强大的 JS 混淆器来解决它,比如 Obfuscator.io.
据我所知,进入前端的任何内容都将始终可见。因此,要用密码保护静态 html 页面,您应该用密码保护文件本身,或者您应该从重定向此页面的页面提示输入密码。
默认情况下,安全性必须在后端完成(正如其他人已经指出的那样)。
但是我想到了一件事要在前端做一些安全工作:
使用一些 JavaScript 向用户请求密码,并使用此密码解密已在交付页面中可用的一些加密字符串,并用解密后的数据替换 body
的内容。使用 JavaScript.
如果我必须在这些条件下想出一些办法,我会考虑对用户名和密码进行哈希处理并将其用作服务器上文件的 url包含页面的实际内容,然后使用 JS 加载它。
但是,如果您真正关心安全性,而不只是让它对大多数用户构成挑战,那么在后端执行安全性仍然是一个更好的选择。