XSS(교차 사이트 스크립팅) 및 PHP 애플리케이션에서 이를 방지하는 방법
3181 단어 phpsecurityprogrammingwebdev
웹 브라우저의 보안 결함으로 인해 XSS는 처음에 크로스 사이트로 알려졌습니다. 브라우저에서 두 사이트 모두에 대한 창을 활성화한 경우 XSS를 사용하여 한 사이트에서 다른 사이트로 정보/데이터를 이동할 수 있습니다.
이 게시물에서는 XSS에 대한 세부 정보와 PHP 웹 앱에서 XSS 공격을 방지하는 방법을 안내합니다.
XSS(교차 사이트 스크립팅)
XSS란 무엇입니까?
웹 클라이언트에 의한 의도하지 않은 원격 코드 실행입니다. 공격자는 XSS를 사용하여 의심하지 않는 사용자에게 악의적인 스크립트를 보낼 수 있습니다.
모든 웹 응용 프로그램은 사용자로부터 입력을 받아 웹 페이지에 직접 출력하는 경우 XSS에 노출될 수 있습니다.
XSS는 어떻게 발생하는가
XSS는 일반적으로 웹 양식 또는 웹 페이지의 하이퍼링크를 사용하여 추가됩니다. JavaScript, PHP, HTML 및 VBScript를 포함한 모든 클라이언트 측 언어에서 이 코드를 사용할 수 있습니다.
클라이언트에서 오는 데이터 입력은 절대 신뢰할 수 없습니다. GET, POST 및 COOKIE 값은 무엇이든 될 수 있으므로 출력하기 전에 유효성을 검사해야 합니다.
PHP는 이를 위한 몇 가지 방법을 제공합니다.
1️⃣HTML 인코딩:
PHP htmlspecialchars 함수는 HTML 특수 문자를 HTML 인코딩으로 변환하므로 표준 HTML로 처리되지 않습니다.
구문
<?php
// GET
$input = htmlspecialchars($_GET['input']);
// POST
$input = htmlspecialchars($_POST['input'])
?>
2️⃣URL 인코딩:
동적으로 생성된 URL을 출력할 때 PHP는 urlencode 기능을 제공하여 유효성이 검사되거나 삭제된 URL을 안전하게 출력합니다.
구문
<?php
$input = urlencode($_GET['input']);
?>
악의적인 입력은 인코딩된 URL 매개변수로 변환됩니다.
3️⃣타사 PHP 라이브러리:
XSS 방지를 지원하는 데 일반적으로 사용되는 여러 타사 PHP 라이브러리가 있습니다.
예시👇
HTML 정수기 – here
PHP 안티 XSS – here
htmlawed – here
🗝PHP 필터 기능 사용.
이 기능은 여러 가지 방법으로 PHP 스크립트로 전송된 데이터를 삭제하거나 유효성을 검사합니다.
참고✍
PHP STRIP_TAGS()는 데이터 삭제에만 사용하면 안 됩니다. strip_tags()는 HTML 태그 사이의 내용을 제거하고 HTML 엔터티 속성 내에 존재하는 XSS 인스턴스를 방지할 수 없습니다. strip_tags()는 쌍을 이루지 않은 닫는 꺾쇠 괄호도 필터링하거나 인코딩하지 않습니다.
결론
교차 사이트 스크립팅은 다재다능한 공격입니다. 사용자 자격 증명, 쿠키 및 경제적 가치가 있는 데이터를 포함하여 매우 민감한 데이터를 훔치는 데 사용될 수 있습니다.
XSS를 방지할 수 있는 다른 방법은 무엇입니까? 아래 댓글에 아이디어를 공유해주세요👇
당신은 당신을 위해 더 많은 글을 계속 쓸 수 있도록 나를 지원할 수 있습니다 🚀❤
Reference
이 문제에 관하여(XSS(교차 사이트 스크립팅) 및 PHP 애플리케이션에서 이를 방지하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/qbentil/cross-site-scripting-xss-and-ways-to-prevent-it-in-php-applications-510c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)