我从互联网教程中学到了用密码和用户名创建单独的文件,如 mysql.php 。
$dbserver = "localhost";
$dbname = "";
$dbpass = "";
$dbname = "";
$db = mysql_connect($dbserver, $dblogin, $dbheslo);
mysql_select_db($dbnazev, $db);
每当我需要连接到mysql时,我会在我的代码 include" mysql.php" 中使用。
但这并不意味着互联网上的任何人都可以将这个文件包含在他的脚本中并进入我的数据库吗?
BTW:我的托管不使用localhost,它使用的是 mysql87.example.com ....
答案 0 :(得分:1)
根据您的情况,我可以说,以这种方式使用它是安全的(不是我的方式,我喜欢上课),这就是原因:
当你启动你的网络服务器时,也启动了php服务器(mod_php,php-fpm,php-cgi或其他)。这个php服务器从文档中排除,将通过Web服务器显示给包含它的任何其他人。
这意味着代码
<!-- SOME CODE HERE -->
<?php require('mysql.php'); ?>
<!-- SOME CODE HERE ALSO -->
将重写为
<!-- SOME CODE HERE -->
<!-- SOME CODE HERE ALSO -->
所以包含此文件的任何人都不会看到php代码。
这意味着像这样使用它是安全的。但我建议确保直接访问此类文件。
<?php
define ('MY_CUSTOM_CONSTANT', 42);
require('mysql.php');
// Other code
<?php
defined('MY_CUSTOM_CONSTANT') or die('You cannot access to this file directly');
在这种情况下,即使他们包含或只是从网络调用此文件 - 他们只会收到短信,在这种情况下代码将不会被执行
答案 1 :(得分:0)
任何人都可以浏览到您的脚本,并且它将连接到数据库,但脚本将立即结束。假设您没有在mysql.php
脚本中弄乱表单或cookie变量,那么潜在的攻击者将无法运行查询,因此您的数据库是安全的。