在config.php中包含函数代码的安全性问题是什么
我的开发人员通过在config.php中包含函数代码的安全性问题是什么,php,security,config,Php,Security,Config,我的开发人员通过config.php文件中的两个函数将代码交付给客户机 客户表示这是一个安全风险,作为一个非php的人,他想知道是否有人知道这是为什么 config.php中存在哪些安全漏洞 代码: 如果配置值存储在可扩展类中的变量中,可以想象,它们可以从代码中实例化该类的任何其他地方被覆盖。这可能被归类为安全问题,具体取决于您管理或公开代码的方式 下面是更多内容,让您了解如何可以重写变量: 将机密放入文档根目录中的文件被认为是一种不好的做法,因为如果服务器配置错误,将.php作为普通文件提供,
config.php
文件中的两个函数将代码交付给客户机
客户表示这是一个安全风险,作为一个非php
的人,他想知道是否有人知道这是为什么
config.php
中存在哪些安全漏洞
代码:
如果配置值存储在可扩展类中的变量中,可以想象,它们可以从代码中实例化该类的任何其他地方被覆盖。这可能被归类为安全问题,具体取决于您管理或公开代码的方式 下面是更多内容,让您了解如何可以重写变量:
将机密放入文档根目录中的文件被认为是一种不好的做法,因为如果服务器配置错误,将.php作为普通文件提供,或者如果打印了stacktrace,包括有问题的行,那么您就泄露了机密。(这种情况比您想象的要多,尤其是在服务器移动和维护方面。) 此外,将机密和实际活动代码混合在同一个文件(如上所述)中会使管理代码和部署变得困难,最终可能会将密码检查到源代码存储库中,这不是一件好事
通常的建议是将数据库凭据和API密钥等机密保存在web服务器文档根目录外的静态仅配置文件中,并在需要时从PHP读入。“config.PHP文件”?您可能需要更具体一点。Hi deceze是一个小型php应用程序的配置文件,用于存储数据库信息和s3信息对不起,请尽早输入:我已经将代码复制到问题中,但是您描述的“两个函数”在哪里?你是指定义的吗?到目前为止,我没有看到任何让我担心的事情,安全性方面。函数上传3($FilePath,$name=”“){$FilePath=str_replace(“);$info_path2=explode(“/”,$FilePath);if(count($info_path2)>1){$Bucket=$info_path2[0];$Object_info=str_replace($Bucket./”,“,”“,$FilePath);如果(!class_存在('S3'))需要一次('S3.php'));//实例化类$s3=news3(awsAccessKey,awsSecretKey);$s3>putBucket($Bucket,s3::ACL_PRIVATE);if($s3>getObject($Bucket,$Object_info,$name)){return true;}否则{return false;}return false;}
<?php
//$config["ALLOWED_IPS"] = Array("rrrr,tttt,uuuu");
$config["PRIVATE_KEY"] = "sssss";
$config["PUBLIC_KEY"] = "aaaaa";
$config["DB_HOST"] = "wwwww";
$config["DB_NAME"] = "334455ffff";
$config["DB_USER"] = "uuuu";
$config["DB_PASS"] = "uuuu";
//AWS access info
if (!defined('awsAccessKey')) define('awsAccessKey', 'xxxxx');
if (!defined('awsSecretKey')) define('awsSecretKey', 'yyyyy');
function uploadS3($FilePath,$name=""){
$FilePath = str_replace("https://s3.amazonaws.com/","",$FilePath);
$info_path2 = explode("/",$FilePath);
if (count($info_path2)>1){
$Bucket = $info_path2[0];
$Object_info = str_replace($Bucket."/","",$FilePath);
if (!class_exists('S3')) require_once('S3.php');
//instantiate the class
$s3 = new S3(awsAccessKey, awsSecretKey);
$s3>putBucket($Bucket, S3::ACL_PRIVATE);
if ($s3>getObject($Bucket, $Object_info, $name)) {
return true;
}else{
return false;
}
}
return false;
}
?>