【问题标题】:Is there a more secure way than serialize()? [closed]有没有比 serialize() 更安全的方法? [关闭]
【发布时间】:2013-08-27 03:08:16
【问题描述】:

这是我的代码:

HTML

<form id="loginForm"> 
    Username:
    <input type="text" id="username" name="username" value="<?php echo $submitted_username; ?>" /> 
    <br />
    Password:
    <input type="password" id="password" name="password" value="" onkeypress="onEnterLogin(event);" /> 
    <br />
    <input type="button" id="loginButton" onclick="updateLogin();" value="Login">
</form>
<a href="register.php">Register</a>

jQuery

function updateLogin() {
    $.post("login.php", 
        $("#loginForm").serialize(),
        function(html) {
            $("#north").html(html);        
        }
    );
}

有没有更好的方法来做到这一点?

$("#loginForm").serialize(),

【问题讨论】:

  • 这有什么问题? $.serialize 正是您所需要的。如果您想要安全的东西,请使用https://
  • 嗯,你为什么认为serialize()不安全?
  • $.serialize 使用与普通表单提交相同的编码。你认为你还需要什么?
  • 如果您想要安全,请使用 HTTPS。
  • 那么如何让它使用 HTTPS?

标签: jquery forms


【解决方案1】:

要使用 HTTPS,请将其放在脚本的 URL 中:

$.post("https://yoursite.yourdomain.com/path/to/login.php",
        $("#loginForm").serialize(),
            function(html) {
                $("#north").html(html);        
            }
    );
}

当然,这也需要您拥有 SSL 服务器。您的托管服务提供商应该能够帮助您进行设置。

【讨论】:

  • 设置https 不仅仅是将其放入脚本中:专用IP 地址、来自受信任来源的适当证书、Web 服务器配置、usw。所有这些都不是 SO 的主题
  • 感谢您提供有用的答案,我可以更深入地研究,这还不够,所以我不能将其标记为答案,但我会给你一个好评。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-17
  • 2023-03-26
  • 2011-05-08
  • 1970-01-01
  • 1970-01-01
  • 2017-01-01
  • 2021-02-16
相关资源
最近更新 更多