2017-11-22 2 views
-1

튜토리얼을 보았고 튜터는 GET 요청 전용 애플리케이션에 XSS 필터를 넣었습니다.XSS 공격은 GET 및 POST 요청에서만 발생합니까?

크로스 사이트 스크립팅에 대한 필자의 이해는 POST와 GET을 사용하고 있습니다. "해커"는 서버에 스크립트를 게시하고 웹 앱이 GET 요청을하면 스크립트를 수신하고 스크립트 데이터가 페이지에로드 될 때 브라우저가이를 실행합니다.

이것은 데이터 (스크립트)가 수신되는 페이지를 보는 모든 사용자에게 영향을 줄 수 있습니다.

GET 요청 웹 응용 프로그램 만 가지고 있다면 어떻게 취약합니까?

+3

웹 브라우저를 통해 모든 http 동사, 다른 사용자가 제대로 살균하지 않고 데이터를 보도록하는 데 사용할 수있는 모든 통신을 통해 수행 할 수 있습니다. –

답변

2

여기에 여러 가지 오해가있는 것 같습니다.거짓 -

만 POST 요청은 서버가 데이터를 저장하는 원인이 될 수 있습니다.

HTTP 사양에서는 GET 요청이 안전하고 위약하다는 것을 요구하지만이 규칙을 위반하는 서버 측 코드를 작성하기 쉽습니다. 거짓 -

만 요청이 서버에서 데이터를 얻을 수 있습니다 GET.

대부분의 HTTP 요청에는 클라이언트가 렌더링 할 본문을 포함하는 응답을 포함 할 수 있습니다.

종종 Post-Redirect-Get 패턴을 사용하는 것이 좋지만, 반드시 그런 것은 아니며 항상 최선의 방법은 아닙니다. POST 요청은 브라우저에서 렌더링되는 응답을 가질 수 있습니다. 거짓

많은 XSS 공격 입력 직접 응답에서 반향되는 반사 형태의 아르 -

는 데이터은 XSS 취약점을 유발하는 저장 될 필요가있다.


Google과 같은 검색 엔진을 순진하게 구현해 봅시다.

검색을 수행하면 검색 용어가 페이지 상단의 입력 요소에 표시되므로 수정할 수 있고 새로운 검색을 할 수 있습니다.

<input name="q" value="<?php echo $_GET['q'];"> 

이제 검색 문자열로 XSS 공격을 시도해 보겠습니다. 같은 페이지에 렌더링됩니다

http://example.com/?q="><script>alert("XSS");</script> 

:

<input name="q" value=""><script>alert("XSS");</script>"> 

... 그리고 취약점은 분명하다.

+0

좋아, XSS 공격에 대한 HTTP 동사와 데이터 저장소에 대한 대부분의 점을 이해하지 못했다. 그러나 마지막 부분에서 "많은 XSS 공격은 입력이 응답에서 직접 반향되는 Refelcted 형식입니다." 당신은 정교 할 수 있습니까? 그게 너 자신 뿐인데 어떻게 영향을 미칠거야? – Kevorkian

+0

@Kevorkian - 직접 쓰지 않은 링크를 클릭 한 적이 있습니까? – Quentin

+0

예 직접 작성하지 않은 링크를 클릭했습니다. 그것이 XSS와 어떤 관련이 있습니까? 사용자가 펑키 한 매개 변수로 링크를 클릭하면 사용자 실수가됩니다. – Kevorkian