document_root에서 sitewide 암호 키와 DB 액세스 정보를 저장하는 것을 좋아하지 않으므로 conf.d에서 Apache의 SetEnv 및 php.ini 파일을 사용하여 코드베이스와 구분했습니다. 가장 큰 문제는 어느 것이 더 낫습니까? apache vhost 파일 (SetEnv SITEKEY 'oinkoink!'
) 또는 conf.d/xxx.ini 파일 (db_pass="oink?"
) 내부의 환경 변수? 다른 뭔가?SetEnv 또는 php.ini에서 DB 변수를 저장하는 것이 얼마나 안전합니까?
총 N 단점 :
적인 SetEnv :
+ DOCUMENT_ROOT 외부에 저장
+ 만 주어진 가상 호스트은 phpinfo()와 -Visible 액세스
이 - 직접 액세스/업로드 파일
에 활용할 필요가 해커를
get_cfg_var :
+ DOCUMENT_ROOT
외부에 저장 6,은은 phpinfo()에 + 표시하지 않음
는 - (아주 나쁜) 모든 정의 된 INI 변수가 포함되어, 각각의 가상 호스트는 (ini_get_all)를 통해이를 조회 할 수 있습니다, 공유 가상 호스트 환경에서 이렇게 사용할 수 없습니다
"누군가가 임의의 PHP 코드를 실행할 수있는 권한을 얻은 경우 ..."-이 경우 베팅이 모두 해제되고 db cred를 어디에 저장하든 철저히 pwn됩니다. – Asaph