插件介绍
目前X1系统在前后台登录过程中,用户名和密码是明文传输给服务器。虽然有HTTPS可以加强保护,但现在HTTPS照样可以被抓包。而且只要政府部门的网站,都要申请公安备案号,同时会接受网警安全监测。网监就能抓到HTTPS的数据。
此插件就是解决此问题而生。安装后,可以在网上找个在线生成密钥对的网站或者用其他工具生成密码对填上(安装后设置处有一个在线生成的网站链接)。
你的PHP需要开启Mcrypt才能使用此插件
在后台网站设置中填入密钥对并开启此功能后,前台登录页面源码最下面会出现如下内容(以官方默认模板为例,如果你修改过模板,让你的前端给相应修改即可。模板中的内容无非是在表单提交前,将用户名和密码通过JS加密处理后再提交。)
后台登录模板中,官方并没有加入钩子,所以后台登录模板需要我们手动加入:
{:hook_listen('layout_body_foot',$userdb,['webdb'=>$webdb,'info'=>$info],true)}
如图:
此模板同样是官方默认的。如果你修改过模板,请让前端相应修改即可。
还有最后重要的一点是:钩子我不清楚是我没搞懂怎么返回数据还是本来就不能返回。造成经过上面的修改后,后台验证时还是验证的未解密数据,所以只能再修改一个文件:application/common/model/User.php
如图:
希望有知道怎么返回钩子的内容的大佬能教下本小白。
此插件的原理:
将用户名和密码用公钥加密,在后台用私钥解密。
公钥只能加密,所以不用担心在前端会暴露,话说前端也只能用JS加密了,想不暴露也难,所以如果使用对称加密(对称加密就是加解密都是用的同一个密钥)的方式是不安全的。
私钥可以加密也可以解密,但只保存在服务端。在登录时服务端先用私钥解密后交给X1系统进行下一步操作。