Chrome은 새로운 기능과 보안 개선 사항을 포함하기 위해 수시로 출시되는 새 버전으로 지속적으로 활발히 개발되고 있습니다. Chrome은 탐색에만 사용되는 것이 아닙니다. 개발자가 사용하는 많은 웹 서비스에도 사용됩니다.
최근 Chrome 57 빌드에서는 XSS 감사자 감지 기능이 크게 향상되었습니다. 웹 서비스가 작동을 멈추고 'ERR_BLOCKED_BY_XSS_AUDITOR 오류 메시지가 표시되는 새로운 지침이 설정되었습니다. '.
이 오류 메시지는 HTML 콘텐츠가 요청 내에서 POST 메서드를 통해 전송될 때 발생합니다. Google 크롬에는 항상 양식을 통해 제출되는 HTML을 분석하고 해당 요청을 차단하는 XSS 보안 기능이 있습니다. 이렇게 하면 양식이 전송되지 않고 XSS 악용이 방지됩니다.
Chrome에서 'ERR_BLOCKED_BY_XSS_AUDITOR' 오류 메시지의 원인은 무엇입니까?
앞서 언급했듯이 최근 빌드 의 Chrome은 XSS 취약점이 악용되지 않도록 XSS Auditor를 개선했습니다. 이 때문에 소스 코드를 적절하게 업데이트하지 않으면 오류 메시지가 나타날 수 있습니다.
대부분의 경우 위양성 브라우저가 '교차 사이트 스크립팅' 공격이 강제 실행되고 있다고 생각할 때. 이러한 공격은 주로 브라우저가 웹사이트의 표시 측면의 일부가 아닌 JavaScript 또는 HTML을 렌더링하도록 속일 때 발생합니다.
해결책(웹사이트를 관리하는 경우)
웹 사이트 관리자이고 정상적인 사용 중에 이 오류 메시지가 발생하는 경우 일부 페이지 헤더를 POST 헤더에 추가하여 제거를 시도할 수 있습니다. 이것은 XSS Auditor 요청을 적절하게 처리하는 적절한 대안이 나올 때까지 임시 수정 사항입니다.
PHP
PHP 파일에 다음 헤더를 추가하십시오.
header('X-XSS-Protection:0');
ASP.NET
여기에서 소스 코드에 적절한 처리기를 추가할 수 있을 때까지 XSS 보호를 일시적으로 비활성화합니다.
HttpContext.Response.AddHeader("X-XSS-Protection","0");
Web.Config를 구성하는 경우 파일에 다음 코드를 대신 추가할 수 있습니다.
<system.webServer> <httpProtocol> <customHeaders> <add name="X-XSS-Protection" value="0" /> </customHeaders> [...]
ASP.NET 서버 요청 유효성 검사
경우에 따라 필요한 헤더를 추가한 경우에도 서버가 POST 요청을 거부합니다. 또 다른 해결 방법은 'Request.Unvalidated '는 '안전하지 않은' 데이터 요청 획득을 처리하기 위해 특별히 생성된 개체입니다.
var code = Request.Unvalidated.Form["code"];
이것은 ASP.NET 요청 유효성 검사에서만 작동합니다. .
웹 양식을 사용하는 경우 , 다음을 사용할 수 있습니다.
<@ Page validateRequest="false" %>
MVC를 사용하는 경우 , 우리는 '[ValidateInput(false)]을 사용할 수 있습니다. '는 컨트롤러의 속성입니다. 이는 유효성 검사를 방지하기 위해 수행됩니다.
[ValidateInput(false)] public ActionResult Convert(CodeRequest request) { ... }
IIS HttpRuntime 설정
IIS Express는 웹 서비스를 위해 Visual Studio에서 사용되며 현재까지 가장 많이 사용되는 아키텍처 중 하나입니다. ASP.NET을 사용하는 경우 IIS는 ASP.NET이 제어권을 획득하기 전에도 요청을 차단할 수 있습니다. web.config 에서 이 기능을 끄려고 합니다. 다음 코드를 사용하여 이전 동작을 얻으십시오.
<httpRuntime requestValidationMode="2.0"/>
이렇게 하지 않으면 IIS가 실패하고 요청이 ASP.NET으로 전달되기 전에도 거부됩니다.
참고: 이러한 해결 방법은 웹 사이트에 액세스할 수 없고 손실을 초래하는 경우에 좋은 아이디어입니다. 항상 XSS Auditor를 적절하게 처리할 수 있도록 소스 코드를 수정하십시오. 적절한 수정을 할 수 있을 때까지 일시적으로만 사용하십시오.
해결책(웹사이트를 관리하지 않는 경우)
일반 사용자이고 웹사이트에 액세스하거나 관리할 수 없는 경우 XSS Auditor 없이 Chrome을 실행할 수 있습니다. Chrome의 바로 가기를 만들고 우리의 조건에서 실행하는 데 필요한 플래그를 추가합니다.
- 바탕 화면의 아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 새로 만들기> 바로가기를 선택합니다. .
- 이제 컴퓨터에 설치된 Chrome 버전에 따라 다음 코드 줄을 붙여넣습니다.
64비트 Chrome용
"C:\Program Files\Google\Chrome\Application\chrome.exe" -disable-xss-auditor
32비트 Chrome용
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -disable-xss-auditor
- Chrome 바로가기가 생성됩니다. 이제 웹사이트에 접속하여 오류 메시지가 해결되었는지 확인하십시오.
참고: 이 방법은 보안 메커니즘의 필수적인 부분인 브라우저에서 XSS Auditor를 비활성화합니다. 자신의 책임하에 진행하고 이 기능은 일시적으로만 사용하는 것이 좋습니다.