2013-08-27 99 views
-4

這是我的代碼:有比serialize()更安全的方法嗎?

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(), 
+0

這是怎麼回事? '$ .serialize'完全正是你需要的。如果你想要一些安全的東西,使用'https://' – 2013-08-27 03:11:27

+2

嗯,你爲什麼認爲'serialize()'不安全? – xdazz

+1

'$ .serialize'使用與正常表單提交相同的編碼。你認爲你還需要什麼? – Barmar

回答

1

要使用HTTPS,把它放在腳本的URL:

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

當然,這也需要你有一個SSL服務器。您的託管服務提供商應該可以幫助您設置。

+1

設置'https'不僅僅是將其放入腳本中:專用IP地址,來自可信來源的正確證書,Web服務器配置,usw。所有這些都脫離SO – 2013-08-27 07:08:39

+0

謝謝你提供了一個有用的答案,我可以深入研究,這是不夠的,所以我不能將其標記爲答案,但我會給你一個upthumb。 – rotaercz

相關問題