我可以在firebase中进行服务器端表单验证吗?

cwdobuhd  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(250)

我在android中使用httpurlconnection向服务器发送一个用户表单(姓名、前名、电子邮件等),然后在服务器端进行验证,然后表单数据被插入数据库或返回错误给用户。简单来说,这就是我的php页面的样子

<?php
$name = $_POST['name'];
$prename = $_POST['prename'];
$email = $_POST['email'];

if( isvalid($name)&&isvalid($prename)&&isvalid($email) ){
    insertUser($name,$prename,$email);
    echo 'successfully registered'
}else{
    echo 'data invalid please correct';
}
?>

从理论上讲,现在用户不能将格式错误的数据(如包含数字的名称)插入到我的数据库中。即使黑客可以欺骗主机服务器接受这种格式错误的输入,mysql服务器也会返回一个错误,表示无法将这些数据插入相应的字段,因为mysql中的每一列都有一个预定义的类型。
现在我考虑切换到firebase,我想知道是否可以在将数据插入实时数据库之前进行同样的验证,而不依赖客户端验证。我的意思是,如果有人破解我的应用程序或绕过客户端的验证(这对黑客来说很容易),欺骗应用程序,他可以插入一些格式错误的数据,用户将开始看到包含数字的名称或包含字母的电话号码或有一个字母的密码,我不希望这种情况发生。
我的问题是:在没有客户端验证的情况下,在将用户输入插入我的firebase之前,是否有任何方法来验证用户输入?如果不是的话,那么什么是最好的方式来绕过这个'问题'?
抱歉,我说得太长了,但我尽量说得精确些。

mccptt67

mccptt671#

要验证可写入firebase实时数据库的数据,可以使用firebase的服务器端安全规则。在对数据库进行每次读/写操作之前,都会对它们进行评估,您可以使用它们来确保所有数据都是有效的,并且所有访问都是经过授权的。
对于一些示例,请查看firebase文档中有关使用安全规则验证数据的内容。

相关问题