2017-12-05 5 views
0

나는 Brainstree를 사용하여 신용 카드 지불을 처리하는 웹 사이트 (PHP Laravel 사이트)를 운영하고 있습니다. 오늘 사이트는 신용 카드 정보를 전달하는 1 개의 URL에 대한 많은 직접적인 요청을받습니다. 해커가 매개 변수를 찾아 내고 도난당한 신용 카드 번호의 유효성을 검사하려고 내 사이트를 사용하고있는 것으로 보입니다.신용 카드 번호 확인을위한 url 요청을 중지하는 방법

다음은 요청의 예입니다.

http://mysite/renew?card_nubmer=42693111111111&ccv=014&expiration_month=11&expiration_year=2019&first_name=beqnykit&last_name=fozwgfrpn&postal_code=44101&type=visa&price=12year=1&country_name=USA&currency=%24

내 사이트를 늦추고, CPU 사용량이 100 % 원인이된다.

코드가 요청을 처리하고 오류 페이지를 표시하기 전에. 이제 요청을 확인하고 잘못된 갱신 요청을 로그인 페이지로 리디렉션합니다. CPU로드는 여전히 100 %입니다.

이 작업을 중단하거나 CPU로드를 중지하려면 어떻게해야합니까?

+0

히트 수는 모두 동일한 IP에서 비롯 되었습니까? 그렇다면 인바운드를 차단하기 만하면됩니다. –

+2

POST 변수 및 CSRF를 사용하십시오. GET으로 신용 카드 정보를 전달하면 문제가 생길뿐입니다. – aynber

+3

또한 페이지가 HTTPS에서 호스팅되고 HTTP가 아닌 다른 곳에서 호스팅되기를 바랍니다. –

답변

1

CSRF 필드의 사용을 활성화해야합니다. POST로 요청을 처리하기 시작 했으므로 괜찮습니다.

이 경로는 인증 된 사용자에게만 제공되어야합니다. 아직 미들웨어를 추가하지 않은 경우 적절한 미들웨어를 추가하십시오.

추가적인 보호 기능으로 일부 스로틀 미들웨어를 사용하는 것이 좋습니다. 이 패키지 또는 이와 유사한 것을 사용해보십시오. 지정한 분당 횟수보다 더 자주이 방법을 사용할 수 없습니다. https://github.com/GrahamCampbell/Laravel-Throttle

0

다음은 업데이트입니다. 해커가 실제로 사이트를 분석합니다. 그것은 자유로운 사용자를 만듭니다. 각 무료 사용자는 신용 카드를 사용하여 유료 회원 주문을 제출합니다. 금액이 적기 때문에 우리는 목표입니다. POST를 사용한다고해서이 해킹이 수정되는 것은 아닙니다. 그래서 계정 생성 및 주문 페이지에 계정 활성화 이메일 및 recaptcha를 추가했습니다. 운 좋게, 그것은 꽤 빨리 멈추게된다. 나는 경험을 공유하기 위해 여기에 정보를 넣었습니다. 모든 도움에 감사드립니다!