경험에 의하면 절대 경로가있는 파일 (예 :/common/lib)을 포함하기 전에 VPS에서 수행해야하는 보안 조치가 있습니까? php 또는 /images/image.jpg)'/'여는 파일을 포함하여 확실하게 확인하는 방법
답변
네, 확실합니다.
display_errors
을 해제했는지 확인하여 사용자에게 보이지 않는 모든 오류 메시지를 작성하십시오.
그런 다음이 경로를 $_SERVER['DOCUMENT_ROOT']
을 추가하거나 다른 방법으로 추가하여 실제 경로로 만듭니다.
그리고 예, 당신이 사용하는 이러한 종류의 코드
include $_SERVER['DOCUMENT_ROOT'].'/common/lib.php';
를 사용하는 어떠한 동적으로 파일 이름
생성 당신은 자신의 안전을 고려하지 않을 수 있습니다.
어디서나 포함 된 부트 스트랩 파일 중 하나에는 보통'define ('APP_ROOT', dirname (__ FILE __)); '과 같은 것이 있습니다. 저는 개인적으로 DOCUMENT_ROOT을 좋아하지 않았습니다. – Leigh
도 옵션입니다. –
그 글을 쓰면서 나는 어리석은 짓을했다는 것을 깨달았다. 부트 스트랩은 이제'define ('APP_ROOT', __DIR __);'... 고마워. Shrapnel;을 읽는다. (첫 번째 옵션은 PHP 5.3에서 작동하지만 두 번째 옵션은 그렇지 않다.) – Leigh
VPS가 올바르게 구성된 경우 추가 보안 조치가 필요하지 않습니다. 당신이하려고하는 것을 어디에서 정교 할 수 있습니까? 실제 파일 시스템 절대 경로를 의미합니까? 그렇다면'/ common/lib.php'는 대부분 의미가 없습니다. –
사용자 입력 변수가없는 절대 경로를 사용하여이를 구성하는 경우 걱정할 필요가 없습니다. 사용자 입력을 사용하는 경우 널 바이트 오류 및 입력 경로에'../ '포함을 방지해야합니다. –