说明

防君子不防小人

前端都没有绝对的安全

这个进行的是前端的验证,有句老话叫 前端的数据都不可信 ,因此这个工具有着它生来就不可避免的问题。我不对这个工具做出任何承诺。

我不断的与自己辩论,最终发现了我所无法解决的问题也是最根本的问题 万恶之源 控制台

问题阐述

第二级页面我通过进行 Cookie 验证来实现继续访问或者跳到登录页面。然而这一切的一切都是在 JavaScript 中运行的( js.js

如果在控制台中提早将 js.js 文件禁用掉(过滤掉),那么身份验证也就无法进行,跳转无法实现,但是需登录后查看的内容还是照常出现。

那我要是不单独放置文件呢?比如我内嵌到 HTML 中呢?同理,但是可能较复杂,先不考虑具体的实现方式,我可以直接在元素中删除这个标签。

这时可能你们也想到了:解决掉控制台。

解决控制台

从原理上来讲比较简单: debugger 命令 。页面加载后直接运行,然后间隔比如 500ms 运行一次,让控制台无从下手。

在网上看了很多文章,网上也有各种的反 反调式 工具,比如 油猴脚本

因此想要限制控制台,防的了君子防不住小人。

内嵌脚本

不得不说,内嵌脚本真的能够有效解决一些问题,起码能把没点技术手段的人拦住。

如果要删除这个标签并且是在它执行之前,难度比前面的要大很多。这方面我也不太清楚了,但是我认为仍然是可以实现的。

还有个问题:管理难度较外链的脚本增大一点。

扒站问题

这也是我无语的一个大问题。甚至于不用扒站,直接 查看源代码 ,所有加密的内容都一清二楚了。所以不用其他方式验证用户信息是不可能安全的。这我还得深度研究才行呀! (ー_ー)!!

原理

……

后面再写吧!

界面截图

已实现

  • 纯静态
  • MD5 加密,不可逆
  • 登陆后反复后台验证,比较安全
  • 验证账户密码直接从表单获取而不赋值
  • 密码错误使用 Bootstrap4 的弹窗框提示,更加美观
  • 虽是手动添加用户名密码,却很方便
    代码片段

缺点

  • 前端验证所生来具有的严重问题
  • JavaScript 里是以赋值的方式获取表单,有可能会被劫持然后直接把存在的 MD5 写进去
  • 后台反复验证可能会导致性能下降,设备运行卡顿
  • 输入完账户密码后回车来进行登录会有很大的延迟

待实现

  • SRI 验证 JavaScript 完整性
  • 加密算法加强

源码

https://github.com/wayne0926/web-login-sys

给个 Star 呗,么么哒😙

演示站点

https://fkun.cf

更新

1.0.1

2020/11/20 23:50 更新取值方式,直接取值而不赋值,增加安全性。界面种种优化。