>  기사  >  웹 프론트엔드  >  웹페이지 프런트 엔드에 대한 일반적인 공격 방법 및 공격 방지 방법_HTML/Xhtml_웹페이지 제작

웹페이지 프런트 엔드에 대한 일반적인 공격 방법 및 공격 방지 방법_HTML/Xhtml_웹페이지 제작

WBOY
WBOY원래의
2016-05-16 16:41:541568검색

웹사이트 프런트 엔드 개발에서 발생하는 보안은 사람들이 쉽게 무시합니다. 왜냐하면 대부분의 사람들은 클라이언트 브라우저에서 실행되는 이러한 코드가 서버 측 보안 위험을 유발하지 않는다고 생각하기 때문입니다. 웹사이트 프런트엔드 및 몇 가지 대처 전략

프런트엔드 기술의 발전으로 인해 서버에서 모든 사용자에게 조용히 보안 문제가 발생하여 사용자 데이터를 훔치고, 악성 자가 복제 웜 코드가 생성되고, 사용자 간에 바이러스가 확산되고, 서버가 다운되는 일이 발생했습니다. 게다가 사용자가 자신도 모르는 사이에 공격자가 될 수도 있습니다. 이는 전혀 놀라운 일이 아닙니다. 리치 클라이언트의 적용이 점점 더 확산되고 있으며 프런트 엔드 보안 문제도 증가하고 있습니다. 오늘은 일반적인 공격 방법과 공격을 예방하는 방법을 간략하게 소개하겠습니다.

공통 공격

XSS(Cross Site Script), 크로스 사이트 스크립팅 공격. 악의적인 공격자가 웹 페이지에 악성 HTML 코드를 삽입하는 것을 말합니다. 사용자가 해당 페이지를 탐색하면 내장된 악성 HTML 코드가 실행되어 악의적인 사용자의 특수한 목적을 달성하게 됩니다. XSS는 수동적 공격이고 악용이 어렵기 때문에 많은 사람들이 그 유해성을 무시하는 경우가 많습니다. 그러나 프론트엔드 기술이 지속적으로 발전하고 리치 클라이언트 애플리케이션 수가 증가함에 따라 이 문제는 점점 더 많은 관심을 끌고 있습니다. 간단한 예를 들자면, 현재 sns 사이트의 사용자라면 js를 실행할 수 있는 정보 게시 기능에 취약점이 있습니다. 이때 악성 스크립트를 입력하면 보는 모든 사람들의 브라우저가 공격을 받게 됩니다. 귀하의 새로운 정보가 이 스크립트를 실행하고 팝업이 나타날 것입니다. 프롬프트 상자(매우 멋진 팝업 광고:)), 좀 더 급진적인 행동을 하면 그 결과는 상상할 수 없습니다.

CSRF(Cross Site Request Forgery), 크로스 사이트 위조 요청. 이름에서 알 수 있듯이 사용자가 자신도 모르는 사이에 연결 요청을 위조함으로써 공격자가 달성해야 하는 목표 중 일부를 자신의 ID를 사용하여 달성할 수 있습니다. csrf 공격은 xss 공격과 다릅니다. csrf는 공격자의 적극적인 행동에 의해 촉발되어야 합니다. 이건 '낚시' 의혹이 있는 것 같네요 ㅎㅎ.
새 창에 현재 세션이 모두 포함되어 있기 때문에 다중 창 브라우저는 폭정에 기여하는 것 같습니다. IE6과 유사한 단일 브라우저 창이라면 각 창에 다음이 있기 때문에 그런 문제는 없을 것입니다. 독립적인 프로세스. 간단한 예를 들어보겠습니다. White Society를 플레이하고 있는데 누군가 링크를 보내는 것을 봅니다. 이를 클릭하면 이 링크에 선물 보내기 양식이 위조됩니다. 이는 단순한 예일 뿐이며 문제는 분명합니다. .

쿠키 하이재킹, 해당 페이지의 권한을 획득하여 해당 페이지에 악성 사이트에 간단한 요청을 작성하고, 쿠키를 획득한 후 사용자의 쿠키를 직접적으로 추측할 수 있습니다. 쿠키를 통해 도용된 이용자는 사이트에 로그인합니다. 쿠키 하이재킹입니다. 간단한 예를 들자면, 어떤 사람이 아주 흥미로운 일기를 써서 모두에게 공유했는데, 많은 사람들이 그 일기를 보고 공유했는데, 일기를 쓴 사람의 의도는 달랐습니다. 그러면 이 로그를 읽는 모든 사람은 자신도 모르게 누군가에게 쿠키를 보내고, 그 사람은 어떤 사람의 쿠키를 통해든 로그인할 수 있습니다.


어떻게 해야 할까요?

대략 1. 일반 사용자 2. 웹사이트 개발자 2가지로 나눌 수 있습니다.

우선 웹상품의 일반 사용자로서 자신도 모르게 수동적으로 이용당하는 경우가 많다는 점을 말씀드리자면. 그런 다음 다음을 수행할 수 있습니다.
1 더 높은 보안 수준으로 웹 애플리케이션에 액세스하려면 별도의 브라우저 창을 열어야 합니다.
2 낯선 사람이 게시한 링크는 복사해서 새 창에서 여는 것이 가장 좋습니다. 물론 가장 좋은 방법은 무시하는 것입니다.

개발자 입장에서는 비교적 세부적인 관점에서 분석해야 합니다.
XSS 공격의 특징은 공격자의 코드가 사용자의 브라우저에서 실행 권한을 얻을 수 있어야 한다는 것입니다. 그렇다면 코드는 어디서 오는 걸까요? 이러한 공격이 발생하는 것을 방지하기 위해 실제로 입구와 출구에서 엄격한 필터링을 수행할 수 있습니다. 이러한 이중 보험을 사용하면 유사한 문제의 99%가 해결되었으며 나머지 1%는 다음과 같습니다. 그 형편없는 브라우저로 인한 후유증, 앞으로 이런 문제는 점점 줄어들 것이라고 믿습니다.

여기서 xss 취약점의 형태를 정리했습니다

악성코드 값은 특정 태그의 내용으로 표시됩니다(입력값이 html이면 html이 파싱됩니다). 예를 들어 사용자 이름을 입력하고 업데이트하면 해당 사용자 이름이 표시됩니다. 페이지에 특정 태그를 입력하면

popper.w

따라서 필터링 없이 페이지에 직접 표시되면 타사 js 코드가 도입되어 실행됩니다.

전략: HTML 입력이 필요하지 않은 html 태그와 일부 특수 문자(" < > & 등)를 필터링하여 브라우저에서 해석 및 실행되지 않는 문자로 변환합니다.

악성 코드가 특정 태그의 속성으로 표시됩니다("를 사용하여 속성을 잘라 새로운 속성을 열거나 악의적인 방법을 사용). 이러한 상황은 개발자가 특정 DOM 태그에 일부 정보를 순서대로 기록하는 경우가 많습니다. 기능을 구현하기 위해 입력한 사용자 이름 등 사용자가 입력한 정보가 페이지의 태그에 제목 형식으로 표시됩니다. 세심하게 디자인된 내용을 입력했다면 이

를 살펴보세요.

popper.w" onclick="alert(1)

실제로 여기에 입력한 것은 "popper.w" onclick="alert(1)" 입니다. 물론 위에 더 많은 내용을 작성하셔도 됩니다.

전략: 속성 자체에 있는 작은따옴표와 큰따옴표를 트랜스코딩해야 할 수 있는 일부 문자를 필터링합니다.

악성코드가 html코드 자체(일반 html에디터)로 표시되는 경우가 가장 많은 상황이므로 여기서는 예시를 드리지 않겠습니다.

전략: 사용자가 입력한 html 태그 및 태그 속성을 화이트리스트에 필터링하는 것이 가장 좋습니다. 또한 일부 취약한 태그 및 속성에 대해 특수 필터링을 수행할 수도 있습니다.

악성 코드는 json 문자열로 표시됩니다(변수 잘림을 통해 새로운 악성 js 변수 생성 또는 실행 코드 생성). 이 문제의 핵심은 사용자가 입력한 정보가 페이지에서 js 코드의 일부가 될 수 있다는 것입니다. .

전략: 속성 자체에 있는 작은따옴표와 큰따옴표를 트랜스코딩해야 할 수 있는 일부 문자를 필터링합니다.

crsf 및 쿠키 하이재킹의 경우

특징: 높은 은폐율 때로는 xss 취약점을 먼저 악용한 후 속이는 경우도 있습니다.

전략
리퍼러, 토큰 또는 인증 코드를 통해 사용자 제출을 감지합니다.
페이지 링크에 사용자 고유번호(사용자 ID)와 관련된 정보가 노출되지 않도록 하세요.
사용자 수정, 삭제, 제출 작업은 게시 작업을 이용하는 것이 가장 좋습니다.
사이트 전체 쿠키를 피하고 도메인에만 쿠키를 설정하세요.

알겠습니다 그냥 여기에 쓸게요~

위 내용은 주로 js hack의 관점에서 본 몇 가지 일반적인 보안 문제입니다. 프론트 엔드 기술의 지속적인 개발과 발전으로 인해 개발자에게는 더 많은 보안 문제가 나타날 수 있습니다. 대부분의 문제는 도중에 피할 수 있습니다. 개발 단계라서 무서운 건 해킹이 아닙니다. 무서운 건 우리 제품의 보안이 허술한 거죠~.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.