보안

실행 사용자

실행 사용자를 권한이 낮은 사용자로 설정하는 것이 좋습니다. 예를 들어, nginx 실행 사용자와 동일하게 설정합니다. 실행 사용자 설정은 config/server.phpusergroup에서 할 수 있습니다. 유사하게, 사용자 정의 프로세스의 사용자는 config/process.phpusergroup에서 지정합니다. 모니터 프로세스는 정상적으로 작동하기 위해 높은 권한이 필요하므로 실행 사용자를 설정하지 않는 것이 좋습니다.

컨트롤러 규칙

controller 디렉토리 또는 하위 디렉토리에는 컨트롤러 파일만 배치할 수 있으며, 다른 클래스 파일을 배치하는 것은 금지합니다. 그렇지 않으면 컨트롤러 접미사가 활성화되지 않은 경우 클래스 파일이 URL에 의해 불법적으로 접근될 수 있어 예측할 수 없는 결과를 초래할 수 있습니다. 예를 들어, app/controller/model/User.php는 실제로 Model 클래스이지만 잘못하여 controller 디렉토리에 배치된 경우, 컨트롤러 접미사가 활성화되지 않은 경우 사용자가 /model/user/xxx와 같은 경로를 통해 User.php의 임의의 메서드에 접근할 수 있습니다. 이러한 상황을 완전히 방지하기 위해, 강력히 컨트롤러 접미사를 사용하여 어떤 파일이 컨트롤러 파일인지를 명확히 표시하는 것을 권장합니다.

XSS 필터링

범용성을 고려하여, webman은 요청에 대해 XSS 이스케이프를 수행하지 않습니다. webman은 렌더링 시 XSS 이스케이프를 수행할 것을 강력히 권장하며, 데이터베이스에 삽입하기 전에 이스케이프를 수행하는 것은 피해야 합니다. 또한 twig, blade, think-template와 같은 템플릿은 자동으로 XSS 이스케이프를 수행하여 수동 이스케이프가 필요 없으므로 매우 편리합니다.


데이터베이스에 삽입하기 전에 XSS 이스케이프를 수행하면 일부 애플리케이션 플러그인과의 호환성 문제를 일으킬 수 있습니다.

SQL 주입 방지

SQL 주입을 방지하기 위해 가능한 한 ORM을 사용하는 것이 좋습니다. 예를 들어, illuminate/database 또는 think-orm을 사용하고, SQL을 직접 조합하는 것을 피하는 것이 좋습니다.

nginx 프록시

애플리케이션이 외부 사용자에게 노출되어야 할 때, webman 앞에 nginx 프록시를 추가하는 것을 강력히 권장합니다. 이렇게 하면 일부 불법 HTTP 요청을 필터링하여 보안을 높일 수 있습니다. 구체적인 내용은 nginx 프록시를 참고하십시오.