让所有用户使用相同的用户名/密码插入mysql数据库是否不安全?

马格迪·加马尔(Magdi Gamal)

抱歉,这个问题很愚蠢。我对PHP / mySql有点陌生...

我正在尝试建立无需登录的提交表单。我在服务器中有一个数据库,只有一个用户有权访问该数据库。因此,只要人们提交表单,他们就可以使用相同的用户名/密码将其插入数据库...

我的配置文件对于所有用户都是这样的...

<?php

return [
    'database' => [
        'name' => 'database',
        'username' => 'myusername',
        'password' => 'mypassword',
        'connection' => 'host',
        'options' => [
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
         ]
    ]
];

这是一种标准/合适的方法吗?还是我需要通过每个用户的用户名/密码将每个用户连接到数据库?

琼斯

是的,这很普遍。大多数Web应用程序和网站都这样做。例如,WordPress使用单个用户名和密码来访问数据库。没关系。

WordPress将其秘密(密码和其他东西)保存在一个名为的文件中/wp-config.php正确配置的Web服务器将不允许站点访问者直接看到该文件。当用户在URL中要求提供这些文件时,应将其设置为始终运行且从不显示php文件。取而代之的是,使用Web应用程序的其他部分include或其require代码来获取机密。WordPress在其文档中对此文件有很好的描述。

但是,如果您想要更严格的安全性,建议您为数据库和备份创建四个用户名/密码。(有些人使用单独的用户名进行备份。)

  1. 报告:此用户仅具有对表的读取权限,并且当您的Web应用程序(或关联的实用程序)必须根据数据生成报告或信息显示时使用。
  2. 常规使用:该用户具有读取权限和有限的写入权限。例如,该用户可能能够读取user表,读取和写入的loginlogpostscomments表。这是用于大多数常规Web应用程序操作的。
  3. 管理员。该用户具有对所有表或几乎所有表的读写特权。当执行诸如创建或删除用户,更改密码或执行计费操作之类的操作时,Web应用程序将使用该用户。
  4. 超。该用户的密码永远不会存储在Web应用程序中,而是由管理员用来维护数据库。这是唯一可以创建,删除和截断表,创建和删除视图,存储的函数以及其他数据库对象的用户。将此用户的密码保留在您的Web服务器之外,这意味着即使恶意用户成功伪造了您的Web应用程序,也无法使用该密码。

然后,您的Web应用程序用户的用户名和密码将是他们自己的,而不是数据库访问用户名/密码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

尝试从Laravel 5中的数据库中检索所有用户名

显示保存在数据库中的所有用户名

获取存储在 TinyDB 数据库中的所有用户名

AWS RDS MySQL数据库用户名和密码足以实现商业安全

PHP mySQL检查用户名和密码是否在数据库中

使用逗号将用户名插入数据库

尝试在数据库中搜索具有用户名的用户

通过数据库查询用户名以确保当用户想要更改其现有用户名时不存在相同的用户名

获得MySQL数据库所有的“用户名”和“ID”和使用PHP分裂

如何授予不使用特定用户名和密码的用户访问数据库的权限?

Python / Django数据库用户名和密码?

Redis - 用户名、密码和数据库?

数据库链接-无效的用户名/密码

Firebase 搜索具有相同用户名/数据库结构的用户

尝试连接到 somee.com 数据库时是否使用我的登录用户名和密码?

如何检查用户名和密码是否与数据库值匹配

如何从Firebase数据库中提取所有在线用户的用户名。

实时数据库-如何更改安全规则以检查用户名是否存在

如何Mac OS Yosemite PostgreSQL在没有用户名和密码的情况下创建数据库

不安全的md5如何使用md5获取用于身份验证的用户名和密码

如何在Axios中使用用户名和密码访问数据库

如何使用数据库表设置管理员的用户名和密码?

如何使用R DBI保护数据库用户名和密码?

在Java中使用用户名和密码创建数据库

使用php的数据库中的用户名和密码

在react中使用Fetch,需要用户名密码才能访问数据库

从MYSQL数据库检索用户名

Android Firebase数据库检查用户名是否已使用

使用Python确定用户名是否在SQLite3数据库中