为了账号安全,请及时绑定邮箱和手机立即绑定

将 Javascript 变量传递给 PHP

将 Javascript 变量传递给 PHP

喵喵时光机 2021-10-29 15:13:23
我正在开发一个登录系统,您可以在客户端散列密码,然后将其发送到服务器。我已经获取了密码并对其进行了哈希处理,现在我只需要将其插入数据库和/或比较登录。    <form action="javascript:;" onsubmit="return changeFormLogin()">        <p>Email</p>        <input id="username" type="email" name="username" placeholder="Enter Email" required>        <p>Password</p>        <input id="getPass" type="password" name="password" placeholder="••••••" required>        <input type="submit" name="login" value="Sign In">        <p id="demo"></p>    </form>    <script src="https://cdnjs.cloudflare.com/ajax/libs/js-sha256/0.9.0/sha256.min.js" ></script>    <script>        function changeFormLogin() {            var pass = document.getElementById('getPass').value;            var username  = document.getElementById('username').value;            var getSalt = 123566;            var hashpass = sha256(pass+pass);            console.log(hashpass);            var tmp = validateLogin(hashpass);            if(tmp ==1){                                        //Welcome the user back, and load new form            }            else{                //Tell them to try again, notify them.            }            document.getElementById("demo").innerHTML = hashpass; //Used for testing            return true;        }
查看完整描述

3 回答

?
Helenr

TA贡献1780条经验 获得超4个赞

为简单起见,我在发送数据时总是使用 FormData 对象


var fd = new FormData();

 fd.append("Name", [VALUE]);


然后在 XmlHttpRequest 中发送该对象


另外,我并没有真正做到安全,所以我不知道,但是散列应该在服务器端完成吗?


查看完整回答
反对 回复 2021-10-29
?
动漫人物

TA贡献1815条经验 获得超10个赞

你可以:

  1. 使用POST 或 GET请求以表单形式发送信息(将导致页面刷新)。

  2. 使用AJAX / XMLHttpRequest(不刷新页面)。

  3. 使用cookie。

由于您正在尝试创建登录系统,因此我建议使用 POST 请求(因此它不会在 url 栏中显示提交的信息)和 PHP 会话来检查用户是否已登录(这是一个示例) .

不仅如此,如果您想让您的用户登录信息保密,您不应该使用 javascript 进行身份验证,搜索有关如何以正确方式散列密码的教程,您会在 stackoverflow 和信息上找到很多相关材料安全。

PHP 默认只支持bcrypt 和 argon,但它们仍然比 SHA256 好,因为SHA/HMAC 对计算机更快,因此破解速度更快。


查看完整回答
反对 回复 2021-10-29
  • 3 回答
  • 0 关注
  • 151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信