it-swarm-korea.com

Ajax를 안전하게하는 방법?

이 질문은이 보안 질문에서 영감을 얻었습니다 https://security.stackexchange.com/questions/1707

  1. Ajax 사용시 위협은 무엇입니까? (기능 단점이 아니라 보안 위협에 대해 이야기하고 있습니다.)
  2. Ajax를 어떻게 안전하게 보호합니까? ( CakePHP 프레임 워크를 사용하고 있기 때문에 예를 들어 PHP의 예)를 입력하십시오.)
15
Kim Stacks

Ajax는 단지 HTTP를 통해 데이터를 파싱하는 것입니다. 그것은 마법이 아닙니다. 따라서 일반 웹 페이지와 동일한 방식으로 데이터를 보호합니다

  • 인증 및 권한 확인
  • 다시 제출하기 위해 브라우저로 내 보낸 데이터에 솔트 해시 검사 암호화 또는 추가
  • 요청에 수신 된 모든 데이터를 잠재적으로 위험한 것으로 취급
  • 적절한 곳에 HTTPS를 사용하십시오
  • 올바른 방법을 사용하여 PHP 떠나는 데이터 변환) (htmlentities, mysql_real_escape_string
  • 원점을 기준으로 올바른 방법을 사용하여 스크립트에 입력하는 데이터 변환 (예 : json_decode)
16
symcbean

AJAX의 위협은 일반적인 웹 요청에 직면 한 것과 동일합니다 : XSS, SQL Injection 등) 신뢰할 수없는 소스에서 데이터를로드하는 경우 예를 들어 일부 웹 서비스), 서버뿐만 아니라 클라이언트의 데이터가 누군가가 잠재적으로 자바 스크립트 및 기타 불쾌한 것을 주입 할 수 있는지 확인해야합니다.

AJAX는 HTTP 요청 일 뿐이므로 "일반적인"항목을 확인하는 것 외에 (사용자 권한 확인, 데이터를 삭제하는 등 실제로 요청했는지 또는 속이 었는지 확인합니다 (예 : 다른 페이지의 링크). 그러면 각 AJAX = 서버 측에서 요청하고 유효성을 검사합니다 ( CSS 방지 양식 토큰을 구현하는 올바른 방법은 무엇입니까? 참조). 일반적인 요청에서도 CSRF 토큰을 사용하는 것이 좋습니다.

또 다른 것은 클라이언트 측에서 수행하는 작업에 따라 데이터를 삭제하는 것입니다. 그렇지 않으면 공격자가 페이지에 유해한 코드를 삽입 할 수 있습니다. 타사에서 데이터를 가져 오는 경우 특히 중요하지만 모든 입력에 가장 적합합니다.

6
Andreas Arnold