요청할 때 userID가 포함된 POST 양식이 이미 필요하므로 POST 양식의 userID를 기록할 수 있다면 액세스를 n회(시간당 3회가 좋을 것 같습니다)로 제한할 수 있는 방법이 있을 것 같습니다. 해당 UserID를 한 시간 동안 유지합니다. (즉, 사용자ID "A"는 1시간에 3번만 접속할 수 있고, 사용자ID "B"도 1시간에 3번 접속할 수 있다는 뜻입니다....)
그런데 그 방법을 못찾았네요..
그것이 하는 일은 다른 서비스를 제공하기 위한 요청을 프록시하는 것입니다. 이제 Apache2에서 ProxyPass만 사용하므로 apache2 구성 내에서 구성해야 합니다(제 생각에는).
그것을 할 수 있는 방법이 있나요?
답변1
웹 서버 수준이 아닌 애플리케이션 수준에서 이를 수행해야 합니다. 즉, POST 후에 애플리케이션은 사용자에게 "너무 짧은 시간에 너무 많은 요청을 했습니다. 나중에 다시 시도하십시오"와 같은 내용을 알려야 합니다.
Apache 웹 서버인 AFAIK(IIS에도 해당)는 HTTP 매개변수(예: 웹 사이트 또는 URL) 또는 네트워크 매개변수(예: 소스 IP 주소 또는 대역폭 사용량)를 사용하여 요청을 제한할 수만 있습니다.
(틀렸다면 정정해 주십시오. 저는 Apache 전문가가 아닙니다.)
답변2
보세요이 mod_security 사용 사례쿠키나 URI 콘텐츠를 사용할 수 있으므로 POST 데이터도 추출할 수 있습니다. 아니면 누구든지 양식에 다른 사용자 이름을 입력하여 문제를 해결할 수 있으므로 IP를 가져와 사용하세요.