TEL:400-8793-956
当前位置:程序、服务器

什么是访问Web数据库的“安全协议”?

提问者: 近期获赞: 浏览人数: 发布时间:2021-05-25 14:15:40

 问:因此,我一直在本地主机上使用自己的“测试驱动器”数据库。但是现在是时候进行真正的交易了。是否有任何“安全”协议可以从网站访问/连接到它?数据库管理员已经为我设置了一个测试用户帐户设置,但是我更担心应该采取的预防措施。我正在使用PHP

 
 
答:检查您的源代码的人看不到PHP脚本的源代码,因此通常在PHP中DB密码是相当安全的,除非从包含该信息的文件中抛出错误,否则有可能将其打印在错误中或无障碍。
 
尽管本文在将密码存储在根文件夹之外有一个很好的解释,并且大致是我自己做的(根据服务器的配置来进行或进行一些更改):
 
我的网络服务器的根目录是“ / localhost / public_html /”,我创建了一个文件夹,例如“ / localhost / private /”,该位置在外部无法被其他人访问,因为它的URL不在根目录文件夹的上方。
 
我将config.ini放在“ /localhost/private/config.ini”
 
config.ini包含数据库登录凭据:
 
[数据库]
服务器名=本地
用户名=管理员
密码=密码
dbname = db_main
然后,我在根目录中创建一个php函数,例如在“ /localhost/public_html/includes/dbconnect.php”中说
 
dbconnect.php的内容:
 
<?php 
function  db_connect () { 
//将连接定义为静态变量,以避免多次连接静态$ connection ; //如果尚未建立连接,请尝试并连接到数据库if (!isset ($ connection )){ //将配置作为数组加载。使用配置文件的实际位置$ config = parse_ini_file ('../private/config.ini' ); $ connection = mysqli_connect ($ config [ '服务器名' ],$ config
 
          [ 'username' ],$ config [ 'password' ],$ config [ 'dbname' ]); 
} //如果连接不成功,处理错误,如果($连接===假){ //处理错误-通知管理员身份登录到一个文件,显示错误屏幕等回报mysqli_connect_error (); } return $ connection ; } //连接到数据库$ connection = db_connect (); //检查连接是否(($ connection- >    
 
 connect_error ) { 
die (“连接失败:” 。$ connection- > connect_error ); } ?>      
 
 
如您所见,我将config .ini文件的值从服务器位置“ ../private/config.ini”解析为数组$ config,该位置只能由localhost访问,并且无法通过网址。
 
每当我想连接到数据库时,我只需包含包含该功能的dbconnect.php文件,
 
<?php 
require_once ('./includes/dbconnect.php' ); 
?>
对于查询,我从dbconnect()函数调用变量$ connection,例如:
 
<?php  
$ sql  =  “从文章中选择ID,标题,标题,日期,部分,内容” ;
$ result  =  $ connection- >查询($ sql ); 
?>
通过所有这些操作,我的数据库登录凭据位于网站根目录的范围之外,并且如果您遇到SQL或PHP错误,它将仅显示变量名称,而不显示包含登录凭据的值。
上一篇: 动态检索属性和属性值
下一篇: 为什么我们需要添加两个部分标签。我认为一个人可以解决