使用Javascript创建帐户
使用Javascript创建帐户是个好主意还是容易出现安全风险?如果可以,我需要能够显示一些错误,如果用户名或电子邮件地址已经存在 e、 g 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();
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连接发送数据,否则在数据发送到服务器时查看数据的人将能够查看数据。