如何在我的javascript文件和php文件之间建立桥接代码以保护MySQL信息?



我有四个文件。

  1. index.php具有搜索功能的"主页",使用MySQL数据库。 我调用数据库 抛出JavaScript,客户端。
  2. fetch.php"包含MySQL连接信息。
  3. bridge.php覆盖获取文件,我正在使用php代码来制作 连接。
  4. .htaccess 文件,用于阻止对 fetch.php 文件的任何直接访问。

index.php<--->bridge.php<--->fetch.php<--->Mysql

我的索引.php文件包含下面的代码,并且因为我使用的是JavaScript!.htaccess文件阻止索引.php文件访问我的fetch.php文件,javascript是"客户端">

<script>
$(document).ready(function(){
function load_data(query)
{
$.ajax({
url:"bridge.php",
method:"post",
data:{query:query},
success:function(data)
{
$('#result').html(data);
}
});
}

所以我让我的javascript代码调用bridge.php文件,bridge.php文件调用fetch.php文件抛出PHP语言,以使所有这些工作。

所以我的桥.php文件代码:

<?php
include 'fetch.php';
?>

现在没有人可以直接访问 fetch.php .htaccess文件阻止任何直接连接抛出浏览器,但如果我调用文件桥.php扔掉浏览器它会打开数据库!这解决不了任何问题!我做错了什么?

这是我的.htaccess文件的代码:

<Files ~ "fetch.php">
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Files>

这就是我的获取文件调用MySQL的方式:

$connect = mysqli_connect("localhost", "example.com", "passowrd", "databasename");
$output = '';
if(isset($_POST["query"]))
{
$search = mysqli_real_escape_string($connect, $_POST["query"]);
$query = "
SELECT * FROM tbl_customer 
WHERE CustomerName LIKE '%".$search."%'
OR Address LIKE '%".$search."%' 
OR City LIKE '%".$search."%' 

我认为您使问题过于复杂,或者您以无济于事的方式编写了fetch.php

我猜你的fetch.php里面有MySQL函数或类代码,然后你可以访问和使用。像这样:

<?php
define('MYSQL_SERVER','localhost');
define('MYSQL_LOGIN','mylogin');
... and more ...
class DB {
... methods ...
}
?>

fetch.php的关键部分应该是开场<?php和闭幕?>

如果你(或其他任何人)直接请求fetch.php,你的代码应该以一种结果是完全空白页的方式编写。

Web 服务器上唯一的开销是单个 PHP 传递,然后将空白返回呈现给浏览器。

如果你用另一种方式编写了代码,我建议你重新考虑你的方法,并质疑你为什么要做你所拥有的。

顺便说一句,只有在没有其他方法的情况下,才应向.htaccess文件添加详细信息。就Web服务器性能而言,它们不是一个好主意。

编辑:

如果你真的想确保fetch.php不是直接调用,而只是包含在另一个文件中,你可以在顶部做如下的事情:

<?php
if (count(get_included_files()) == 1) {
// direct request, do nothing
exit;
// or even redirect somewhere like
header("Location: /");
exit;
}
// has been included, allow rest of script to process
$connect = mysqli_connect("localhost", "example.com", "passowrd", "databasename");
// ... more code below

相关内容

最新更新