>백엔드 개발 >PHP 튜토리얼 >일반적인 PHP 공격(6가지 공격 유형에 대한 자세한 설명)

일반적인 PHP 공격(6가지 공격 유형에 대한 자세한 설명)

不言
不言원래의
2018-04-03 11:26:212343검색

이 글에서는 일반적인 PHP 공격(6가지 공격 유형에 대한 자세한 설명)을 소개합니다. 도움이 필요한 분들을 위한 참고 자료가 될 수도 있습니다. 함께 살펴보겠습니다.

1.

SQL 인젝션은 사용자가 양식 필드에 SQL 문을 입력하여 정상적인 SQL 실행에 영향을 미치는 악의적인 공격입니다. system() 또는 exec() 명령을 통해 주입되는 것도 있는데, 이는 동일한 SQL 주입 메커니즘을 갖고 있지만 셸 명령만 대상으로 합니다.


[python]일반 사본 보기


일반적인 PHP 공격(6가지 공격 유형에 대한 자세한 설명)일반적인 PHP 공격(6가지 공격 유형에 대한 자세한 설명)

  1. $username = $_POST[ '사용자 이름']

  2. $query = "사용자 이름 = '".$username."'";

  3. echo $query; $db = new mysqli(

    'localhost'
  4. ,

    'demo', 'demo', 'demodemo') $result = $db-> ); 성공적으로 로그인했습니다."

  5. ;
  6. } else {

  7. echo "
    로그인 실패"

  8. }

SQL 주입 방지 옵션 :
* mysql_real_escape_string()을 사용하여 데이터 필터링
* 각 데이터가 올바른 데이터 유형인지 수동으로 확인
* 준비된 문 및 바인드 변수 사용
* 준비된 준비된 문 사용
* 데이터 분리 및 SQL 논리
* 준비된 문은 자동으로 필터링됩니다(예: 이스케이프)
* 이를 코딩 표준으로 사용하여 팀에 새로 온 사람들이 위의 문제를 피할 수 있도록


[python]view plain copy


일반적인 PHP 공격(6가지 공격 유형에 대한 자세한 설명)일반적인 PHP 공격(6가지 공격 유형에 대한 자세한 설명)

  1. $query = '국가 코드가 있는 도시의 이름, 구역 선택?'

  2. if ($stmt = $db->prepare($query)){

  3. $countrycode = 'hk';

  4.          $stmt ->bind_para m("s ", $countrycode);

  5. $stmt->execute();

  6. $stmt->bind_result($name, $district)

  7. ( $stmt ($stmt->fetch() ) {

  8.                                                  에코 $name.
  9. ', '

    .$district;

  10. echo
  11. '
    }

          $stmt- >close();

  12. }
  13. 2. XSS 공격

  14. 클라이언트 측 스크립트(보통 JavaScript)가 포함된 웹사이트에서 필터링 없이 다른 웹페이지로 데이터를 출력하면 이 스크립트가 실행됩니다. 사용자가 제출한 텍스트 콘텐츠

    * 귀찮은 팝업 창 * 새로 고침 또는 리디렉션

    * 웹 페이지 또는 양식 손상
  15. * 쿠키 훔치기
* AJAX(XMLHttpRequest)

XSS 공격 방지
XSS 공격을 방지하려면 PHP를 사용하세요. htmlentities() 함수를 사용하여 필터링한 다음 브라우저에 출력합니다.

htmlentities. ()의 기본 사용법은 간단하지만 많은 고급 제어 기능이 있습니다. XSS 치트 시트를 참조하세요.


세션 보안 , 그러나 PHPSESSID를 추측하기 어렵다고 가정하면 PHP는 쿠키나 URL을 통해 세션 ID를 허용할 수 있습니다. 따라서 피해자를 스푸핑하면 특정(또는 다른) 세션 ID를 사용하거나 세션 캡처를 할 수 있습니다. 하이재킹

이는 세션 고정과 동일하지만 세션 ID가 쿠키에 저장되어 있으면 XSS 및 JavaScript를 통해 도용될 수도 있다는 것입니다. 세션 ID가 URL에 포함된 경우 스니핑 또는 프록시 서버에서 획득:
* 업데이트 ID
* 세션을 사용하는 경우 사용자가 SSL을 사용하고 있는지 확인하세요


5. 교차 사이트 요청 위조( CSRF)



CSRF 공격은 사이트의 신뢰할 수 있는 사용자가 되려는 것처럼 보이지만 의도적이지 않은 페이지에서 이루어진 요청입니다. 다음 예와 같이 다양한 변형이 있습니다.


[python ]

일반 카피 보기





  1. 일반적인 PHP 공격(6가지 공격 유형에 대한 자세한 설명)'http://example.com/single_click_to_buy.php?user_id=123&item=12345'> -사이트 요청 위조

    일반적으로 사용자가 양식에서 왔고 전송한 모든 양식과 일치하는지 확인하세요. 기억해야 할 두 가지 사항이 있습니다.

각 세션의 ID를 업데이트하고 사용자를 위해 SSL을 사용하는 등 사용자 세션에 적절한 보안 조치를 적용합니다.
또 다른 일회용 토큰을 생성하여 양식에 포함하고 세션(세션 변수)에 저장한 후 제출 시 확인하세요.


6. 코드 주입

코드 주입은 잘못된 데이터를 처리하여 컴퓨터 취약점을 악용하여 발생합니다. 문제는 일반적으로 파일 포함을 통해 실수로 임의의 코드를 실행할 때 발생합니다. 잘못 작성된 코드로 인해 원격 파일이 포함되고 실행될 수 있습니다. require와 같은 많은 PHP 함수와 마찬가지로 URL이나 파일 이름을 포함할 수 있습니다. 예:


[python]

view plain copy



일반적인 PHP 공격(6가지 공격 유형에 대한 자세한 설명) < ;양식> 일반적인 PHP 공격(6가지 공격 유형에 대한 자세한 설명)

  1. 테마 선택:

  2. ;옵션 값 = 파란색>파란색

  3. 값 = 녹색

  4. if($theme) {

  5. require($theme.'.txt')

  6. }

  7. ?> ;


위의 예에서 "http://"로 시작하는 파일은 파일 이름 또는 사용자가 입력한 파일 이름의 일부를 전달하여 포함됩니다.

코드 삽입 방지
*사용자 입력 필터링

*php.ini 설정에서 허용_url_fopen 및 허용_url_include를 비활성화하세요. 그러면 원격 파일에 대한 require/include/fopen이 비활성화됩니다.

기타 일반 원칙
1. 특히 웹 서버/PHP가 ISP에 의해 관리되거나 웹 사이트가 다른 곳으로 마이그레이션/배포되어 향후 사용되지 않을 경우 애플리케이션을 보호하기 위해 서버 구성에 의존하지 마십시오. . 다른 곳으로 마이그레이션/배포하세요. 웹사이트 코드(HTML, JavaScript, PHP 등)에 보안 인식 검사/로직을 포함하세요.

2. 서버 측 보안 스크립트 설계:

- 예를 들어 단일 실행 라인 사용 - 단일 지점 인증 및 데이터 삭제

- 예를 들어 모든 보안에 민감한 페이지에 처리할 PHP 함수/파일을 포함 모든 로그인/보안 로직 검사

3. 코드가 최신 패치로 업데이트되고 패치되었는지 확인하세요.

관련 권장사항:

PHP 공격 웹사이트 방어 코드 - 공격 코드 역번역_PHP 튜토리얼

위 내용은 일반적인 PHP 공격(6가지 공격 유형에 대한 자세한 설명)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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