说明
防君子不防小人
前端都没有绝对的安全
这个进行的是前端的验证,有句老话叫 前端的数据都不可信
,因此这个工具有着它生来就不可避免的问题。我不对这个工具做出任何承诺。
我不断的与自己辩论,最终发现了我所无法解决的问题也是最根本的问题 万恶之源 控制台
。
问题阐述
第二级页面我通过进行 Cookie
验证来实现继续访问或者跳到登录页面。然而这一切的一切都是在 JavaScript
中运行的( js.js
)
如果在控制台中提早将 js.js
文件禁用掉(过滤掉),那么身份验证也就无法进行,跳转无法实现,但是需登录后查看的内容还是照常出现。
那我要是不单独放置文件呢?比如我内嵌到 HTML
中呢?同理,但是可能较复杂,先不考虑具体的实现方式,我可以直接在元素中删除这个标签。
这时可能你们也想到了:解决掉控制台。
解决控制台
从原理上来讲比较简单: debugger
命令 。页面加载后直接运行,然后间隔比如 500ms
运行一次,让控制台无从下手。
在网上看了很多文章,网上也有各种的反 反调式
工具,比如 油猴脚本
。
因此想要限制控制台,防的了君子防不住小人。
内嵌脚本
不得不说,内嵌脚本真的能够有效解决一些问题,起码能把没点技术手段的人拦住。
如果要删除这个标签并且是在它执行之前,难度比前面的要大很多。这方面我也不太清楚了,但是我认为仍然是可以实现的。
还有个问题:管理难度较外链的脚本增大一点。
扒站问题
这也是我无语的一个大问题。甚至于不用扒站,直接 查看源代码
,所有加密的内容都一清二楚了。所以不用其他方式验证用户信息是不可能安全的。这我还得深度研究才行呀! (ー_ー)!!
原理
……
后面再写吧!
已实现
- 纯静态
-
MD5
加密,不可逆 - 登陆后反复后台验证,比较安全
- 验证账户密码直接从表单获取而不赋值
- 密码错误使用
Bootstrap4
的弹窗框提示,更加美观 - 虽是手动添加用户名密码,却很方便
缺点
- 前端验证所生来具有的严重问题
-
JavaScript
里是以赋值的方式获取表单,有可能会被劫持然后直接把存在的MD5
写进去 - 后台反复验证可能会导致性能下降,设备运行卡顿
- 输入完账户密码后回车来进行登录会有很大的延迟
待实现
-
SRI
验证JavaScript
完整性 - 加密算法加强
源码
https://github.com/wayne0926/web-login-sys
给个 Star 呗,么么哒😙
演示站点
更新
1.0.1
2020/11/20 23:50
更新取值方式,直接取值而不赋值,增加安全性。界面种种优化。