使用Javascript创建帐户

使用Javascript创建帐户,javascript,php,Javascript,Php,使用Javascript创建帐户是个好主意还是容易出现安全风险?如果可以,我需要能够显示一些错误,如果用户名或电子邮件地址已经存在 e、 g Javascript: function createAccount() { var new_user = $('#new-username').val(); var new_pass = $('#new-password').val(); var confirm_pass = $('#confirm-password').val();

使用Javascript创建帐户是个好主意还是容易出现安全风险?如果可以,我需要能够显示一些错误,如果用户名或电子邮件地址已经存在

e、 g

Javascript:

function createAccount() {
   var new_user = $('#new-username').val();
   var new_pass = $('#new-password').val();
   var confirm_pass = $('#confirm-password').val();
   var new_email = $('#new-email').val();
   $.post('createaccount.php', {
       new_user: new_user,
       new_pass: new_pass,
       confirm_pass: confirm_pass,
       new_email: new_email
   });
}
createaccount.php:

$new_username = mysqli_real_escape_string($conn,$_POST['new_user']);
$new_password = mysqli_real_escape_string($conn,$_POST['new_pass']);
$new_email = mysqli_real_escape_string($conn,$_POST['new_email']);
$confirm_password = mysqli_real_escape_string($conn,$_POST['confirm_pass']);

$query = mysqli_query($conn,"SELECT * FROM users WHERE username='$new_username'");
$numrows = mysqli_num_rows($query);
$query2 = mysqli_query($conn,"SELECT * FROM users WHERE email='$new_email'");
$numrows2 = mysqli_num_rows($query2);

...

echo json_encode(array('numrows'=>$numrows,'numrows2'=>$numrows2));

我需要能够使用$.getJSON以某种方式使用
numrows
numrows2
来提醒一些错误(比如用户名已经存在,或者电子邮件地址已经在使用中)。有什么方法可以做到这一点吗?

从Javascript代码发送的HTTP请求与从HTML表单发送的HTTP请求一样安全。

很好,但是,您应该像平常一样在PHP中进行安全检查,这样即使用户操纵Javascript,也无法进行恶意操作。

其他两个答案总结得很好。只要您剥离服务器端的数据。我认为还有一件事应该提到。如果您没有SSL或其他加密方法设置,最好在发送之前用javascript对其进行加密。通过这样做,您可以确保任何窥探者都不会获得通过互联网发送的数据的副本。它还可以帮助你避免让国家安全局获取你的数据副本。Javascript没有用于加密的本机函数,因此您必须获得一个非本机库。只要谷歌“javascript加密”,你就会找到你想要的。有很多选择。祝你好运希望这能有所帮助。

不要将密码存储在纯文本中text@SLaksOP在哪里以明文形式存储密码?@Ian:
mysqli\u real\u escape\u string($conn,$\u POST['confirm\u pass'])
或者干脆就这样matter@SLaks啊,我明白你的意思了。我没有看到任何存储,但我看到你可以假设它将以明文的方式存储,就像它写的那样感谢你的回答,但我的主要问题是,如果用户名或电子邮件已经存在,如何显示错误exists@frosty:以JSON格式返回验证/结果,然后阅读JSON中的JSON。通过HTTP提供的Javascript加密是无用的,取决于您如何看待它。除非您对数据进行加密或通过SSL连接发送数据,否则在数据发送到服务器时查看数据的人将能够查看数据。