저는 초보자인데 오늘 코드를 작성하던 중 갑자기 보안 문제가 발생했습니다.
다양한 Ajax 요청에 대해 해커가 외부에서 코드를 제출할 수 있나요? JS 파일 브라우저는 그것을 볼 수 있기 때문에, 즉 당신의 코드를 알 수 있습니다. 그러면 해커가 우리의 도메인 이름을 사용하여 외부에 제출하면 PHP가 그것이 합법적인지 여부를 결정할 수 있습니까? 예를 들어, 우리 자신의 파일이 제출되었는지 확인합니까?
예를 들어, 내 js 파일에는
$('input').click(function(){ $.post('index.php',{a:xx,b:xx},function(a){ xxxxx }) }) 那么如果黑客通过外部提交 xxxxxxxxxxx $('input').click(function(){ xxxxxx $.post('http://www.xxxx.com/index.php',{a:xx,b:xx},function(a){ xxxxx }) xxxxxx }) xxxxxxxxxxx
코드가 있습니다. 이를 방지하려면 PHP에서 어떻게 작성해야 하나요?
CSRF를 이해하시나요?
외부 제출은 정상이며, 주입은 절차를 통해 예방해야 합니다.
말씀하신 대로 외부 Ajax 시뮬레이션에서 제출한 데이터는 크로스 도메인입니다.
이 문제를 처리하는 방법에는 여러 가지가 있습니다. 예:
1. 액세스 권한을 설정할 수 있습니다. 예를 들어 로그인한 회원만 볼 수 있거나 도메인 이름을 제한할 수 있습니다. 하지만 이 장애물은 언제나 극복될 수 있습니다.
2. 세션을 사용하여 토큰을 생성하세요. 제출 후 세션을 확인하세요. 합법적인 경우 세션을 즉시 로그아웃하여 매번 새 토큰이 있는지 확인하세요.
3. 접속 로그를 분석하여 의심스러운 IP 접속을 서버 차원에서 차단합니다.
4. 각 IP의 동작밀도를 기록해두세요. 빈도가 더 높을 경우 수시로 인증코드를 요청할 수 있습니다.
...
방법은 많지만 최선은 없습니다. 다각적인 접근을 권장합니다. 입양하시길 바랍니다~