自己的博客,/admin.html 是后台管理页面,没有 https,有什么方法可以尽可能地保障帐号安全
1
ysc3839 2020-10-26 21:39:35 +08:00 via Android
自己实现一套 TLS ?不过相比之下更建议使用 https 。
|
2
whywhywhy 2020-10-26 21:43:17 +08:00
不用账号密码,都用第三方扫码登录即可。
|
3
taogen 2020-10-26 21:46:02 +08:00 via Android
明文传输怎么保证安全
|
4
redtea 2020-10-26 21:46:48 +08:00 via iPhone
IP 限制
|
5
billlee 2020-10-26 21:50:25 +08:00
指允许 127.0.0.1 访问,然后 ssh 隧道
|
6
renmu123 2020-10-26 23:17:33 +08:00 via Android
ip 白名单即可(其实你搞个复杂的密码就可以了
|
7
tuding 2020-10-26 23:37:55 +08:00 via Android
路径换一下吧,/adm1n.html 。再一个限制 IP
|
8
kaiki 2020-10-26 23:55:51 +08:00
后台地址改成动态的,根据 index.html?key=xxx,这个 key 你本地写一个工具根据时间加盐生成,服务端验证地址对不对,不对直接 403 就行。
误差 1 分钟以内就行 |
9
nuk 2020-10-27 00:57:01 +08:00
js 版本的 http-digest
|
10
lzxz1234 2020-10-27 09:24:51 +08:00
fail2ban + 两步验证
|
11
angryfish 2020-10-27 09:26:49 +08:00 via iPhone
没事,没人嗅探你密码的。反而,你要注意一下密码强度
|
12
clf 2020-10-27 10:04:32 +08:00
使用二步验证+IP 限制
|
13
nnnToTnnn 2020-10-27 10:50:06 +08:00
@ysc3839 自己在怎么实现 TLS,也无法阻止一个问题,就是 注入 JS 拦截用户信息。 因为在客户端得不到保证,之所以 HTTPS 安全,是因为浏览器做了保证,把你的代码放在一个沙盒里面,加密的 HTML JS CSS 等等内容,如果说是自己手动实现 TLS 在发起 get 请求的时候,你是无法拦截到具体的内容,同样还是存在中间人攻击。
|
14
ysc3839 2020-10-27 13:06:40 +08:00 via Android
@nnnToTnnn 我说的“自己实现 TLS”,是包含了 TLS 的证书认证机制的,既然 TLS 可以解决这个问题,自己实现时也用同样的方法就好了。
|
15
nnnToTnnn 2020-10-27 13:16:41 +08:00
@ysc3839 只要你还是建立在 http 协议上,那么即使有了证书认证机制,仍然无法避免被中间人
例如 http 报文 ``` GET / HTTP/1.1 Host: www.baidu.com Connection: keep-alive Cache-Control: max-age=0 DNT: 1 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Sec-Fetch-Site: none Sec-Fetch-Mode: navigate Sec-Fetch-User: ?1 Sec-Fetch-Dest: document Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7,en-US;q=0.6,ja;q=0.5 ``` 即使你在此基础上实现 TLS, 但是本质上还是采用 HTTP 协议,那么我完全可以这样拦截 ``` 原来的请求方式 浏览器 -> 发送 GET 请求 -> 自己实现的 TLS 封装的数据 -> 后端校验数据 拦截之后的请求方式 浏览器 -> 拦截发送 GET 请求 -> 植入 JS 脚本代码 -> 跳转到钓鱼网站 根本就不走你之前的后端服务器。 ``` 浏览器为什么会安全,因为浏览器拿到了原始报文,通过 浏览器 -> 后端服务器,中间是加密的,意味要么成功,要么失败,而自己去实现 TLS, 无非是和鸵鸟一样把头埋在沙子里面,认为自己安全了,实际上并不安全 |