文档根;登录变量



我最近在这里发了一个问题;然而,在我得到的回答中,我被告知我的连接查询是不安全的,不推荐使用。

$con = mysql_connect("localhost", "userX", "passX") or die('Could not connect to server');
    mysql_select_db("dbX", $con) or die('Could not connect to database');      
    $query="SELECT fieldX,filedX2 FROM tableX WHERE varX";
    $result=mysql_query($query);
    while($row=mysql_fetch_array($result,MYSQL_ASSOC))

显然,我学习的材料是旧的。所以我调查了这个问题,发现了这两项:

1。"在实际实践中,最好将用户名和密码放在Apache Web服务器路径之外的文件夹中,这样就不能通过Web访问了。"

2。

"将用户名和密码放在web应用程序的文档根目录之外的文件中"
<?php
include("connection.php");
$link = mysql_connect($connection_server, $connection_user,$connection_password);
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

-----
/* --- Connection Variables ---*/
$connnection_server = "[server]";
$connection_database = "[db]";
$connection_user =  "[username]";
$connection_password = "[password]";

我知道这可能听起来像一个愚蠢的问题(显然,我是一个新手),但是文档的根是什么?"文档根目录之外"one_answers"Apache Web服务器之外"是什么意思?

目前,正如我所了解的,我只是在MAMP上,但当我去到一个商业服务器,说Godaddy的,这意味着什么?

同时,我假设

$connnection_server = "[server]";
$connection_database = "[db]";
$connection_user =  "[username]";
$connection_password = "[password]";
上面示例中的

意味着这些变量位于单独的文件中(例如,connection_var.php),对吗?

提前感谢你的知识和帮助。

Jen

文档根目录是浏览器可以直接请求文件或页面的最高目录(顶层)。例如:

http://example.com/index.php

index.php在文档根目录中。没有更高级别的浏览器可以请求。

http://example.com/images/mrcode.jpg

mrcode.jpg不在文档根目录中,因为它位于images目录。

"在文档根目录之外"one_answers"在Apache Web服务器之外"是什么意思?

文档外部根指的是存储在该目录之上的文件,因此不能由浏览器直接请求。例如,您的目录结构可能看起来像:

/websites/example.com/public_html/index.php

如果您要将数据库凭据存储在:

/websites/example.com/dbdetails.php

这将在文档根目录之外(或之上)。将连接凭据存储在文档根目录中不被认为是一个漏洞,但是将它们存储在外部可能会稍微好一些。PHP仍然可以访问文档根目录以上的文件(假设您有权限)。共享主机通常允许您访问文档根目录之上的一个级别。

您的直接问题是您正在使用已弃用的mysql_*库。这样做的问题是,它已从较新版本的PHP中删除,因此如果您继续使用它,您的应用程序最终将完全无法使用。MySQLi和PDO库也提供了Prepared Statements,应该用它来代替转义方法来防止SQL注入,因为它们提供了更高的安全性。请看这里的一个很好的PDO教程。如果你被告知你的查询是不安全的,那么它们可能包含SQL注入漏洞。

最新更新