[英]Creating a secure mySQL database connection with WebMatrix in php
[英]PHP & MySQL connection more secure
我有一个包含连接数据到我的MySQL数据库,这是我一个小页面include
在需要它的其他页面。 小代码是:
[connect_DB.php]
----------------
<?php
define("HOST", "localhost");
define("USER", "myUser");
define("PASSWORD", "myPasword");
define("DATABASE", "members");
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
?>
我的一个朋友向我证明了他可以下载.PHP文件,并在不到2分钟的时间内完成了下载。 这意味着他获得了我的MySQL服务器的登录信息。 我想知道是否存在另一种与数据库连接的方式,而无需将密码存储在文件中,等等。他建议我使用SSL或TSL,或者只是将HTTPD.CONF或.HTACCES配置为不允许“外部”访问到文件。 那是正确的还是可以实现的?
我实际上是在Wamp Server(Win7)上进行测试,因此无法创建.HTACCESS文件,因为它告诉我输入该文件的名称(我已经在介绍它了! 。
我知道这可能是一个重复的问题,但是请相信我,我读了很多文章,但我不知道该怎么办。 预先谢谢你。
很可能是,您的服务器未正确安装,这意味着PHP引擎未运行,因此它只是将文件内容发送或显示为text/html
并且未被PHP解析。 这是注释中提到的某些工具可能访问文件的唯一方法,如果某处没有链接,则该工具也将看不到该文件,因此也许您已启用目录索引。
要测试您是否启用了PHP,只需制作一个文件并将其放入: <?php phpinfo(); ?>
<?php phpinfo(); ?>
如果它显示您的php信息,则显示为树桩,如果没有,则表明您的服务器配置了错误的PHP。
尽管已修复,但好的做法是将敏感文件放在Web根目录之外。 将常量中的值设置为get_defined_constants()之类的函数并不是一个好主意,它可以访问敏感值。 只需将它们直接放在构造参数中即可。
如果要阻止仅PHP可以访问的目录的访问,请创建一个.htaccess文件,并deny from all
文件,这将导致服务器发送403 Forbidden。
我很确定您的宿主提供程序没有解析PHP文件,因为如果源代码通过了解释器,则无法下载源代码。
确保已安装,配置和激活了PHP,如有疑问,请与提供商的支持联系。 最简单的测试方法是上传文件:
test.php的
<?php phpinfo(); ?>
为了保护文件,将数据库配置php放在public_html
, html
或htdocs
目录(其中最有可能是您的文档根目录)之外就足够了,您仍然可以在其中include();
通过PHP。
另一个解决方案是通过.htaccess
保护文件,您可以在文件中放入类似内容并将其上传到document_root:
<Files db_config.php>
deny from all
</Files>
为了增加一点安全性,您可以通过在顶部添加db_config.php来保护它:
if (!defined('IN_MY_PROJECT')) {
die('forbidden');
}
并将其放在您的index.php之上:
define('IN_MY_PROJECT', true);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.