.htaccess
파일에 IP 주소 블록을 추가 하는 PHP 스크립트를 작성 중입니다 . 내 관심사는 웹 서버 사용자가 일반적인 쓰기를 위해 파일을 여는 것을 원하지 않는다는 것입니다 .htaccess
. 웹 서버가 손상되면 파일에 원하는 내용을 쓸 수 있기 때문입니다 .htaccess
. 그래서 저는 PHP 스크립트를 특정 방식으로 제가 원하는 것만 작성하도록 제한하는 방법을 찾으려고 노력하고 있습니다.
내 생각에 이 작업을 수행하는 적절한 방법은 이미 설정되어 있는 다른 위치(아마도 루트가 소유함)에 스크립트를 만드는 것일 수 있습니다 suid
(내 웹 파티션에서는 이를 허용하지 않습니다 suid
). 그런 다음 PHP 스크립트에서 해당 스크립트를 호출할 수 있으며 중간 스크립트의 인터페이스에서 사용할 수 있는 작업만 수행할 수 있습니다. 즉, .htaccess
특정 IP 주소에 대한 차단 코드를 파일에 쓰는 데 필요한 매개변수를 가져오는 작업만 수행할 수 있습니다.
이것이 이 문제를 해결하는 가장 좋은 방법처럼 들리나요? 다른 더 좋은 방법이 있습니까, 아니면 내가 놓친 고려 사항이 있습니까?
메타 주석: 저는 이 질문에 답하기 위해 정보 보안 사이트나 스택 오버플로를 고려해 보았습니다. 이 중 더 나은 것이 있으면 알려주시기 바랍니다.
답변1
PHP 스크립트가 IP 주소를 데이터베이스 테이블에 쓰도록 합니다. 또한 cron
주기적으로 다른 스크립트(권장? Python)를 실행하여 값을 쿼리하고 파일에 씁니다 .htaccess
. 그런 다음 파일의 권한을 .htaccess
엄격하게 유지할 수 있습니다 0640
.root:www-user
우리를할 수 있는SUID 비트는 스크립트에 설정되어 있지만 Linux는 기본적으로 이를 올바르게 무시합니다. 실행 중인 스크립트에 대한 권한을 유사한 권한으로 변경하면 됩니다 0700
.root:root
cron
이와 같은 많은 작업은 데이터베이스 대기열이라는 기술을 사용하여 처리할 수 있습니다. 나는 시스템 관리를 위한 프로젝트 요구사항이었을 때 웹 인터페이스를 사용해 왔습니다. 이러한 시나리오에서 대기열은 사용자, 암호, 가상 호스트, DNS 등을 관리할 수 있습니다.