2013-07-11 1 views
0

내 개발자가 config.php 파일 내에 몇 가지 기능을 가진 코드를 클라이언트에 전달했습니다.config.php에 기능 코드가있는 보안 문제는 무엇입니까

고객은 보안 위험이 있으며 php 사람이 아닌 이유는이 사람이 누구인지 알기를 원합니다.

config.php의 보안 취약점은 무엇입니까?

코드 : 구성 값이 상상 컨대 그들이 그 클래스를 인스턴스화 할 수있는 코드 내에서 다른 곳에서 덮어 쓸 수있는 확장 클래스 내에 위치 변수에 저장되어있는 경우

<?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; 
} 
?> 
+3

* "config.php 파일"*? 당신은 그것보다 조금 더 구체적 일 수 있습니다. – deceze

+0

안녕하세요, 데이터베이스 정보를 s3 정보와 함께 저장하는 작은 PHP 응용 프로그램의 구성 파일 –

+0

죄송합니다. 일찍 입력하십시오 :

답변

1

일반 파일이거나 문제의 줄을 포함하여 스택 추적이 인쇄되면 방금 비밀이 유출되었습니다. (특히 서버 이동 및 유지 보수에서 생각하는 것보다 더 많이 발생합니다.)

또한 동일한 파일에 비밀과 실제 활성 코드를 섞으면 위 코드와 배포를 관리하기가 어려워집니다. 암호를 소스 코드 저장소로 검사하는 것은 좋은 일이 아닙니다.

일반적인 조언은 외부 웹 서버의 문서 루트에 저장된 정적 구성 전용 파일에 데이터베이스 자격 증명 및 API 키와 같은 비밀 정보를 유지하고 필요할 때 PHP에서 읽는 것입니다.

1

. 코드를 관리하거나 노출하는 방식에 따라 보안 문제로 분류 될 수 있습니다.

다음은 최우선 변수가 가능할 수있는 방법에 시작할 수 있도록 더 : 서버가 잘못이며, .PHP 등의 서비스를 제공하는 경우 때문에 나쁜 관행으로 간주됩니다 문서 루트에있는 파일에 비밀을 퍼팅 Why is it possible to override instance variables in PHP but not in Java?

관련 문제