Php 验证创建帐户请求

Php 验证创建帐户请求,php,sql,Php,Sql,我正在制作一个应用程序,使用令牌验证用户。一旦用户登录,他们就会收到一个令牌,要执行任何涉及将数据插入我的数据库的操作,必须验证该令牌 然而,这导致了一个问题。创建帐户需要将数据插入我的数据库,但我不能使用令牌身份验证系统,因为他们没有令牌,这是因为他们没有登录 下面是如何使用令牌进行身份验证的示例 <?php if(authenticationIsValid($token)){ doSomething() }else{ exit(0)

我正在制作一个应用程序,使用令牌验证用户。一旦用户登录,他们就会收到一个令牌,要执行任何涉及将数据插入我的数据库的操作,必须验证该令牌

然而,这导致了一个问题。创建帐户需要将数据插入我的数据库,但我不能使用令牌身份验证系统,因为他们没有令牌,这是因为他们没有登录

下面是如何使用令牌进行身份验证的示例

<?php
    if(authenticationIsValid($token)){
        doSomething()
    }else{
        exit(0)
    }
?>

我的问题是现在我的创建帐户脚本如下所示

<?php
    $userName = $_POST['username'];
    $password = $_POST['password'];

    createAccount($username,$password);
?>

如果url是
www.domain.com/createaccount.php
,就会有人发现了。他们可以轻松地将1000个帐户插入我的数据库

有什么建议吗

编辑:


唯一的解决方案是向用户发送电子邮件确认吗?

应该满足哪些标准才能允许用户创建帐户?为什么不要求现有管理用户创建或批准帐户。这适用于任何人都可以创建帐户的应用程序。批准程序不起作用。我需要知道谷歌是如何让用户创建账户的,而不会让他们的数据库变得脆弱。看到添加的评论^-这个问题现在太广泛了。您需要考虑的是准备好的语句和安全的密码存储方法,如
password\u hash()
“编辑:是向用户发送电子邮件确认的唯一解决方案吗?”-是的,一个唯一的令牌,只能使用一次,并且有时间限制。Google(Gmail)还使用/提供两步验证系统,这将超出问题的范围。这是可行的,但将需要更多的评论,因为有相当多的事情涉及到这一点。一旦他们创建了他们的帐户,你需要做的是首先对他们进行验证。可以说,你不能把马车放在马前面。验证后,您可以使用布尔标志更新数据库。如果我没有“回答”这个问题,那么等待其他人来访问这个问题;祝你好运我觉得我有。