문제

우리는 두 명의 개발자가 요구합니다 allow_url_fopen 서버에서 활성화됩니다. 요즘 표준은 무엇이며 if libcurl 활성화가 실제로 허용할만한 충분한 이유가 있습니까?

환경 : Windows 2003, PHP 5.2.6, FastCGI

도움이 되었습니까?

해결책

당신은 확실히 원합니다 allow_url_include 많은 위험을 완화하는 꺼짐 allow_url_fopen 또한.

그러나 모든 버전의 PHP가 가지고있는 것은 아니기 때문입니다 allow_url_include, 많은 사람들을위한 모범 사례는 Fopen을 끄는 것입니다. 모든 기능과 마찬가지로 현실은 응용 프로그램에 필요하지 않으면 비활성화한다는 것입니다. 필요한 경우 CURL 모듈이 더 잘 수행 할 수 있으며 CURL을 사용하여 비활성화하기 위해 응용 프로그램을 리팩토링 할 수 있습니다. allow_url_fopen 가장 결정적인 크래커를 저지 할 수 있습니다.

다른 팁

대답은 개발자 가이 기능을 책임감있게 사용한다고 신뢰하는 것이 얼마나 잘 이루어지고 있다고 생각하십니까? 외부 URL의 데이터는 다른 신뢰할 수없는 입력과 마찬가지로 취급되어야하며, 그것이 이해되는 한 큰 문제는 무엇입니까?

내가 보는 방식은 개발자를 어린이처럼 취급하고 날카로운 것들을 다루지 못하게한다면 안전한 코드 작성의 책임을 배우지 않는 개발자가 있다는 것입니다.

크로스 사이트 스크립팅 공격은 고통 스럽기 때문에 투표에 반대합니다. 그리고 당신은 절대적으로 "allow_url_include"오프로 설정하거나, 당신은 상처를 입을 것입니다.

그것은 개발 유형에 따라 다릅니다. 프로토 타이핑을 사용하면 'allow_url_fopen'을 활성화하는 것이 좋지만 libcurl과 file_get_contents 사이에는 상당한 속도 차이가 없으며 편의의 문제 일뿐입니다.

생산 서버의 경우 Libcurl에 대한 호출은 보안 감사를 위해 표시해야합니다. 'allow_url_fopen'이 활성화되면 fopen 및 file_get_contents가 있어야합니다. 'allow_url_fopen'을 비활성화한다고해서 악용을 방지하지는 못하면 수행 할 수있는 방법의 수를 약간 제한하는 것은 아닙니다.

큰 문제는 그 것입니다 allow_url_fopen은 더 이상 보안이 아닙니다, 컬을 사용하여 URL에서 파일을 저장하려면 파일을 저장하려면 fopen/file_get에서 전달해야합니다.

  • Curl은 URL에서 원격 콘텐츠를 검색하는 것만으로도 좋습니다. (allow_url_fopen은 필요하지 않음)
  • 원격 파일을 서버에 저장하려면 fopen 또는 file_get과 함께 컬을 추가해야합니다. (curl with curl의 의무적 인 allow_url_fopen)

PHP는 더 안전하게 할 수있는 다른 방법을 찾아야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top