이 기사에서 크로스 사이트 스크립팅 공격이 무엇인지, 코드에서 발생하지 못하게하는 방법을 잘 설명하기를 바랍니다. 사용자 또는 다른 타사 소스의 데이터를 신뢰하지 마십시오. 잘 정의 된 컨텍스트에서 들어오는 값을 검증하고, 코드를 보호하기 위해 데이터를 정리하고, 사용자를 보호하기 위해 출력을 피함으로써 자신을 보호 할 수 있습니다. 코드를 작성한 후 가능한 한 철저하게 코드를 테스트하여 올바르게 작동해야합니다.
(Inge Schepers / Shutterstock의 그림)
이 게시물을 좋아한다면, 당신은 마스터로부터 새로운 기술과 기술을 배울 수있는 장소를 좋아할 것입니다. 회원은 Jump Start PHP와 같은 모든 SitePoint의 전자 책 및 대화식 온라인 과정에 즉시 액세스 할 수 있습니다.
이 기사에서 댓글이 닫혔습니다. PHP에 대해 궁금한 점이 있습니까? 포럼에서 질문하는 이유는 무엇입니까?
PHP 보안 및 크로스 사이트 스크립팅 공격 (XSS)에 대한 FAQ (FAQ) (FAQ)
PHP 응용 프로그램에 대한 크로스 사이트 스크립팅 (XSS) 공격의 영향은 무엇입니까?
XSS (Cross-Site Scripting) 공격은 PHP 응용 프로그램에 큰 영향을 줄 수 있습니다. 데이터 도난, 세션 납치, 웹 사이트 부패 및 사용자에게 악의적 인 코드를 배포 할 수 있습니다. XSS는 웹 애플리케이션의 악용 취약성을 공격하여 악의적 인 스크립트를 주입 한 다음 사용자의 브라우저에서 실행합니다. 이는 응용 프로그램과의 사용자 상호 작용을 위태롭게 할 수 있으며 민감한 정보를 공개 할 수 있습니다.
내 PHP 응용 프로그램에서 잠재적 XSS 취약점을 식별하는 방법은 무엇입니까?
PHP 응용 프로그램에서 잠재적 XSS 취약점을 식별하려면 수동 코드 검토와 자동 테스트가 필요합니다. 사용자 입력이 적절한 청소 나 검증없이 출력에 직접 포함 된 코드에서 영역을 찾으십시오. XSS 스캐너와 같은 자동화 도구는 다양한 XSS 공격 벡터를 테스트하여 잠재적 취약점을 식별하는 데 도움이 될 수 있습니다.
XSS 공격에 사용되는 몇 가지 일반적인 방법은 무엇입니까?
XSS 공격은 일반적으로 다른 사용자가 보는 웹 페이지에 악의적 인 스크립트를 주입하는 것이 포함됩니다. 스크립트를 URL 매개 변수에 포함, 양식 입력 및 쿠키까지 포함시키는 등 다양한 방식으로 수행 할 수 있습니다. 그런 다음 악의적 인 스크립트는 세션 쿠키를 훔치거나 웹 페이지 컨텐츠를 조작하는 등 사용자를 대신하여 작업을 수행 할 수 있습니다.
내 PHP 응용 프로그램에서 XSS 공격을 방지하는 방법은 무엇입니까?
PHP 응용 프로그램에서 XSS 공격 방지에는 사용자 입력을 확인하고 청소하고 인코딩 된 출력 및 적절한 HTTP 헤더를 사용하는 것이 포함됩니다. 항상 사용자 입력을 신뢰할 수없는 것으로 취급하고 허용 가능한 값의 허용 가능한 목록에 대해 검증하십시오. 유해한 문자 나 코드를 제거하려면 입력을 청소하십시오. 유해한 캐릭터가 무해하게되도록하기 위해 출력이 인코딩됩니다. 컨텐츠 보안 정책과 같은 HTTP 헤더를 사용하여 스크립트 및 기타 리소스 소스를 제한하십시오.
XSS 공격을 방지하는 데 컨텐츠 보안 정책이 어떤 역할을합니까?
CSP (Content Security Policy) HTTP 헤더는 XSS 공격을 방지하는 데 중요한 역할을합니다. 브라우저가 유효한 실행 가능한 스크립트 소스로 간주 해야하는 도메인을 지정할 수 있습니다. 즉, 공격자가 웹 페이지에 스크립트를 주입 할 수 있더라도 스크립트의 소스가 CSP에서 화이트리스트에 없으면 브라우저가 실행되지 않습니다.
스토리지 XSS 공격과 반사 XSS 공격의 차이점은 무엇입니까?
스토리지 XSS 공격에는 대상 서버에 영구적으로 저장된 악성 스크립트를 주입하는 것이 포함됩니다. 그런 다음 사용자가 특정 페이지를 보면 스크립트가 사용자에게 제공됩니다. 반면에 반사 XSS 공격은 URL 또는 양식 입력을 통해 스크립트를 주입하는 것이 포함되며, 서버는 즉시 응답을 반환하고 사용자의 브라우저에서 실행합니다.
XSS 공격을 방지하기 위해 PHP의 내장 기능을 사용하는 방법은 무엇입니까?
PHP는 XSS 공격을 방지하는 데 도움이되는 몇 가지 내장 기능을 제공합니다. 예를 들어, 함수는 사용자 입력에서 특수 문자를 인코딩하는 데 사용하여 잠재적 스크립트를 무해하게 만듭니다. 기능을 사용하여 사용자 입력을 정리, 유해 문자 삭제 또는 인코딩 할 수 있습니다.
XSS 공격을 방지하는 데 Httponly 쿠키가 어떤 역할을합니까?
httponly 쿠키는 클라이언트 스크립트를 통해 액세스 할 수없는 쿠키입니다. 이는 공격자가 웹 페이지에 스크립트를 주입 할 수 있더라도 스크립트를 사용하여 httponly 쿠키를 읽거나 수정할 수 없음을 의미합니다. 이는 XSS 공격에 의해 민감한 정보 (예 : 세션 식별자)가 도난 당하지 않도록 보호하는 데 도움이 될 수 있습니다.
XSS 공격을 사용하여 CSRF 보호를 우회 할 수 있습니까?
예, XSS 공격은 CSRF (Cross-Site Request Properery) 보호를 우회하는 데 사용될 수 있습니다. 공격자가 웹 페이지에 스크립트를 주입 할 수있는 경우이를 사용하여 사용자를 대신하여 작업을 수행하여 구현 한 CSRF 보호를 우회 할 수 있습니다. 이것이 바로 XSS 및 CSRF 공격으로부터 보호하는 것이 중요합니다.
XSS 공격에 대한 내장 보호를 제공하는 PHP 프레임 워크는 무엇입니까?
예, 많은 PHP 프레임 워크는 XSS 공격에 대한 내장 보호 기능을 제공합니다. 예를 들어 Laravel은 XSS 공격을 방지하기 위해 출력을 자동으로 인코딩합니다. Symfony 및 Codeigniter와 같은 다른 프레임 워크는 사용자 입력 및 인코딩 된 출력을 청소하는 기능을 제공합니다. 그러나 프레임 워크가 완전한 보호를 제공 할 수 없으며 XSS 공격을 방지하기위한 모범 사례를 계속 따라야한다는 점을 기억해야합니다. htmlspecialchars()