有没有什么办法可以在前端对表单数据进行预处理 [ 2.0 版本 ]
比如我登陆的时候,为了防止wireshark之类的软件抓包获取明文密码,可不可以先预处理之后再提交,demo中的登陆页面提交的都是明文密码,找了找相关的文档都是在后端处理而不是前端。
共 5 个回答
-
这个当然是 可以的
简单的考虑,用 javascript 对密码做一些预处理就可以了,像什么 md5 sha1 之类的 都有开源的js库,当然也可以自己实现 一种加密算法,不过,因为 js代码都是需要下载到本地浏览器运行的,所以 不论你用 js 做什么手脚,即便你可以 对代码 做一些 混淆处理,只要我愿意 并且 有足够的时间 和 耐心,都是可以 读懂你的 js代码,知道你到底对 密码 做了什么处理的。 所以,这种方式 可以说是一种 中看不中用的 花拳绣腿 而已。
安全的方式 当然也有,对 IE 来说,可以使用 ActiveX 控件,对某个版本之前的 chrome 来说,可以使用 npapi插件,这两种方式 比 js 的方案都 安全很多,因为 看不到 源代码了。不过 遗憾的是:某个版本之后 chrome 取消了 对 npapi插件的支持,所以 这么多年以来 很多的 网上银行 都是只支持 IE 登录的,原因就是 chrome 下没有一种安全的 客户端密码加密方案。
共 1 条回复谢谢回答,我的意思是Yii框架是否集成了相关功能可以直接调用,我找到了beforeValidate应该可以实现我的想法,https://www.yiichina.com/doc/guide/2.0/input-form-javascript#beforevalidate,我还在研究学习。
其实都不用读懂代码,也不需要知晓我在前端的加密方式,就算是获取了加密后的表单数据,也可以用POSTMAN这样的软件来模拟登陆之类的操作。但在前端对明文密码进行处理至少一定程度上可以防止隐私泄露 -
-
-
事实上,很多网上银行 很早就都是 全站 https 了,但是 登录页的密码 仍然会采用安全控件的方式。因为 他们防范的危险 是不同的。
https 解决的是 传输的问题,就题主本身 防止抓包 的需求而言,https 是可以在 一定程度上 解决问题的
浏览器控件 解决的是 客户端环境的问题,一个简单的例子,客户端如果运行有 键盘记录器,那么 https 就一点作用都没有了,而安全控件是可以对此 进行防范的。当然,以上所言 有些 跑题,题主问的是 防止抓包
但,https的答案 也可以说 有些跑题,因为 题主问的是 密码的预处理共 1 条回复 -
捣捣爸
最后登录:2022-04-26
在线时长:9小时29分
- 粉丝0
- 金钱105
- 威望10
- 积分295