PHP: 보안. XSS란 무엇입니까? 저장된 XSS 공격 및 이에 대한 보호(브라우저의 html에서 자바스크립트 제거) XSS 공격에 대한 보호




애플리케이션 보안에 관해서는 하드웨어와 운영 체제뿐만 아니라 보안 스크립트 작성에도 주의를 기울이는 것이 중요합니다. 이 기사에서는 애플리케이션의 보안을 보장하고 취약성을 줄이는 방법을 배웁니다. 다음은 모든 종류의 공격으로부터 애플리케이션을 보호하는 데 도움이 되는 조치 목록입니다.

  • 수신 데이터 검증
  • XSS 공격으로부터 보호
  • CSRF 공격으로부터 보호
  • SQL 주입 방지
  • 파일 시스템 보호
  • 세션 데이터 보호
  • 오류 처리 중
  • 포함된 파일 보호
  • 수신 데이터 검증

    애플리케이션을 설계할 때 "불량" 수신 데이터로부터 애플리케이션을 보호하기 위해 노력해야 합니다. 따라야 할 규칙은 다음과 같습니다. "사용자가 입력하는 내용을 절대 믿지 마세요." 대부분의 사용자는 위협이 되지 않지만 누군가가 양식이나 주소 표시줄을 통해 입력한 잘못된 데이터를 사용하여 사이트를 해킹할 가능성은 항상 있습니다. 들어오는 데이터를 항상 확인하고 필터링한다면 안전한 애플리케이션을 작성할 가능성이 높습니다.

    항상 PHP 스크립트에서 데이터를 확인하세요. JavaScript를 사용하여 데이터의 유효성을 검사하는 경우 공격자는 언제든지 브라우저에서 이를 비활성화할 수 있습니다. 이 경우 귀하의 애플리케이션이 위험에 처해 있습니다. JavaScript 유효성 검사에 반대하는 사람은 없지만, 적절한 보호를 위해서는 PHP 스크립트의 데이터를 다시 확인해야 합니다.

    XSS 공격으로부터 보호

    교차 사이트 스크립팅 또는 XSS 공격은 잠재적으로 취약한 페이지에 코드 삽입을 기반으로 하는 공격입니다. 위험은 양식을 통해 악성 코드가 입력된 후 브라우저에 표시될 수 있다는 것입니다.

    귀하의 사이트에 추가 후 즉시 표시되는 댓글 입력 양식이 있다고 가정해 보겠습니다. 공격자는 JavaScript 코드가 포함된 주석을 입력할 수 있습니다. 양식을 제출하면 데이터가 서버로 전송되어 데이터베이스에 입력됩니다. 그런 다음 데이터베이스에서 데이터가 검색되고 포함된 JavaScript 코드를 포함하여 새 주석이 HTML 페이지에 표시됩니다. 사용자를 일부 악성 페이지나 피싱 사이트로 리디렉션할 수 있습니다.

    애플리케이션을 보호하려면 현재 모든 태그를 제거하는 Strip_tags() 함수를 통해 수신 데이터를 전달하십시오. 브라우저에 데이터를 표시할 때 htmlentities() 함수를 사용하십시오.

    CSRF 공격으로부터 보호

    다음으로 살펴볼 공격 유형은 CSRF 공격, 즉 교차 사이트 요청 위조입니다. 공격자는 피해자가 모르는 사이에 다양한 속임수를 사용하여 기밀 정보를 얻거나 거래를 완료합니다. 이는 주로 비즈니스 논리가 GET 요청을 기반으로 하는 제대로 보호되지 않은 사이트에서 발생합니다.

    일반적으로 GET 요청은 멱등성을 갖습니다. 이 맥락에서 멱등성은 제3자의 개입 없이 원하는 만큼 동일한 페이지에 액세스할 수 있음을 의미합니다. 그렇기 때문에 GET 요청은 정보에 액세스하는 데만 사용해야 하며 어떤 경우에도 다양한 유형의 트랜잭션을 수행해서는 안 됩니다.

    다음의 간단한 예는 보호되지 않은 웹사이트가 CSRF 공격을 받을 수 있는 방법을 보여줍니다.