2013-08-27 3 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: //' –

+2

Um, почему вы думаете, что '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-адрес, правильный сертификат из надежных источников, конфигурацию веб-сервера, usw. Все из-за темы для SO –

+0

Благодарим вас за полезный ответ, который я могу изучить глубже, этого недостаточно, поэтому я не могу отметить его как ответ, но я дам вам всплывающее представление. – rotaercz

Смежные вопросы