账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于http前端登陆密码安全的问题疑惑
    28
    0
    1. 登陆密码 post到后端 ,这个密码 前端怎么加密?
    2. 若用md5加密是怎么实现的呢 ?

    3.即使使用md5加密 成了一堆字符串 ,那后端是怎么实现解密的?

    最后的问题:
    假若我用的别人的wifi .在我登陆的时候 别人通过 arp欺骗 截获了这个密码字符串
    那我的密码不就被人知道了吗?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 知白 普通会员 1楼

      在前端进行HTTP登录(通过HTML、JavaScript等语言实现)时,密码的安全性是一个非常重要的问题。以下是一些常见的关于HTTP前端登陆密码安全的疑惑和解决方案:

      1. 防止SQL注入:虽然不是直接涉及HTTP前端登陆,但SQL注入是一种常见的Web攻击方式,它允许攻击者通过输入恶意SQL语句来获取用户数据。为了防止SQL注入,我们可以使用参数化查询(Parameterized Query)或预编译查询(Prepared Statements)。例如,如果我们要从HTML表单中获取用户名和密码,可以使用如下代码:

      ```javascript const form = document.querySelector('form'); form.addEventListener('submit', (event) => { event.preventDefault();

      const username = form.elements.username.value; const password = form.elements.password.value;

      // 使用参数化查询避免SQL注入 const sql = SELECT * FROM users WHERE username = ? AND password = ?; const [username, password] = [username, password];

      const result = fetch(http://example.com/login?username=${username}&password=${password}) .then(response => response.json()) .then(data => { console.log(data); }) .catch(error => { console.error(error); }); }); ```

      1. 保护密码强度:HTTP前端登陆通常使用弱密码(如password123)作为密码,这种密码易被破解。为了保护密码强度,可以使用以下几种方法:

      2. 使用复杂密码(如包含大写字母、小写字母、数字和特殊字符):密码应至少包含8个字符,并且至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符。

      3. 使用哈希算法(如bcrypt)加密密码:bcrypt是一种常用的哈希函数,它可以将密码转换为哈希值,即使密码被暴力破解,也无法恢复原始密码。
      4. 使用一次性密码:一次性密码是指用户在登录时一次性输入密码,而不是在表单中输入密码,这样即使密码被泄露,也可以立即清除,而不会在服务器端存储。
      5. 使用双重认证:双重认证是另一种提高密码安全性的方法,它要求用户通过手机短信、电子邮件、指纹或生物识别等方式验证身份,增加登录失败的次数,从而防止恶意登录。

      6. 网络传输:HTTP协议中,密码通常通过明文传输,这样攻击者可以截取并获取密码。为保护密码,可以使用以下几种方法:

      7. 使用HTTPS:HTTPS是一种安全的HTTP协议,它使用SSL/TLS加密来保护数据在传输过程中的安全性。

      8. 服务器端加密:在服务器端,可以使用哈希算法(如bcrypt)对用户密码进行加密,然后将其存储在服务器端,客户端只需要在登录时发送包含加密后的密码请求。
      9. 隐私化密码:在用户登录时,服务器应将密码哈希为用户密码,然后在客户端存储在安全的地方,例如本地文件或数据库中,而不是明文存储在服务器端。
      10. 限制密码长度:在客户端存储密码时,应限制密码长度,例如限制为8个字符。

      11. 错误处理:如果用户输入的用户名或密码无效,应立即向用户显示错误信息,并要求用户重新输入。例如:

      ```javascript const username = form.elements.username.value; const password = form.elements.password.value;

      if (username === '' || password === '') { alert('Username and password cannot be empty'); return; }

      // 使用参数化查询避免SQL注入 const sql = SELECT * FROM users WHERE username = ? AND password = ?; const [username, password] = [username, password];

      const result = fetch(http://example.com/login?username=${username}&password=${password}) .then(response => response.json()) .then(data => { console.log(data); }) .catch(error => { console.error(error); alert('Invalid username or password'); }); } ```

      总的来说,前端HTTP登陆密码安全需要综合考虑多种因素,包括参数化查询、哈希算法、双重认证、网络传输和错误处理等,以提高密码的强度和安全性。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部