WordPress 如何禁止明文传输用户名密码,防止中间人攻击

虽然全站已经 HTTPS 了,但是因为某些原因,不允许明文传输用户名密码,也就意味着需要在客户端做一层加密,然后在服务端解密。 了解下来只能选择 RSA 的方式了。 准备工作,首先需要生成秘钥: # 生成 1024 位的 RSA 私钥 openssl genrsa -out key.pem 1024 # 导出相对应的公钥 openssl rsa -in key.pem -pubout -out pubkey.pem # 复制出来备用 cat key.pem cat pubkey.pem 打开 wp-login.php 文件,将以下代码补充到 loginform 后面,我是放在 $login_script 后面。 主要是为了捕获登录表单,在 submit 的时候,把 user_login 和 user_pass 各自加密后再发送到服务端。 <script src="https://cdn.jsdelivr.net/npm/jsencrypt@3.2.1/bin/jsencrypt.min.js" type="text/javascript"></script> <script type="text/javascript"> (function($) { var user_pass = $("#user_pass"); var user_login = $("#user_login"); var loginform = $("#loginform"); var sign = '公钥'; var encrypt = new JSEncrypt(); encrypt....

April 15, 2022