이 글에서는 일반적인 PHP 공격(6가지 공격 유형에 대한 자세한 설명)을 소개합니다. 도움이 필요한 분들을 위한 참고 자료가 될 수도 있습니다. 함께 살펴보겠습니다.
1.
SQL 인젝션은 사용자가 양식 필드에 SQL 문을 입력하여 정상적인 SQL 실행에 영향을 미치는 악의적인 공격입니다. system() 또는 exec() 명령을 통해 주입되는 것도 있는데, 이는 동일한 SQL 주입 메커니즘을 갖고 있지만 셸 명령만 대상으로 합니다.
[python]일반 사본 보기
$username = $_POST[ '사용자 이름']
$query = "사용자 이름 = '".$username."'";
echo $query; $db = new mysqli(
'localhost''demo', 'demo', 'demodemo') $result = $db-> ); 성공적으로 로그인했습니다."
} else {
echo "
로그인 실패"
}
SQL 주입 방지 옵션 :
* mysql_real_escape_string()을 사용하여 데이터 필터링
* 각 데이터가 올바른 데이터 유형인지 수동으로 확인
* 준비된 문 및 바인드 변수 사용
* 준비된 준비된 문 사용
* 데이터 분리 및 SQL 논리
* 준비된 문은 자동으로 필터링됩니다(예: 이스케이프)
* 이를 코딩 표준으로 사용하여 팀에 새로 온 사람들이 위의 문제를 피할 수 있도록
[python]view plain copy
$query = '국가 코드가 있는 도시의 이름, 구역 선택?'
if ($stmt = $db->prepare($query)){
$countrycode = 'hk';
$stmt ->bind_para m("s ", $countrycode);
$stmt->execute();
$stmt->bind_result($name, $district)
( $stmt ($stmt->fetch() ) {
.$district;
$stmt- >close();
2. XSS 공격
* 귀찮은 팝업 창 * 새로 고침 또는 리디렉션
* 웹 페이지 또는 양식 손상 XSS 공격 방지
XSS 공격을 방지하려면 PHP를 사용하세요. htmlentities() 함수를 사용하여 필터링한 다음 브라우저에 출력합니다.
세션 보안 , 그러나 PHPSESSID를 추측하기 어렵다고 가정하면 PHP는 쿠키나 URL을 통해 세션 ID를 허용할 수 있습니다. 따라서 피해자를 스푸핑하면 특정(또는 다른) 세션 ID를 사용하거나 세션 캡처를 할 수 있습니다. 하이재킹
이는 세션 고정과 동일하지만 세션 ID가 쿠키에 저장되어 있으면 XSS 및 JavaScript를 통해 도용될 수도 있다는 것입니다. 세션 ID가 URL에 포함된 경우 스니핑 또는 프록시 서버에서 획득:
* 업데이트 ID
* 세션을 사용하는 경우 사용자가 SSL을 사용하고 있는지 확인하세요
5. 교차 사이트 요청 위조( CSRF)
CSRF 공격은 사이트의 신뢰할 수 있는 사용자가 되려는 것처럼 보이지만 의도적이지 않은 페이지에서 이루어진 요청입니다. 다음 예와 같이 다양한 변형이 있습니다.
일반 카피 보기
'http://example.com/single_click_to_buy.php?user_id=123&item=12345'> -사이트 요청 위조
일반적으로 사용자가 양식에서 왔고 전송한 모든 양식과 일치하는지 확인하세요. 기억해야 할 두 가지 사항이 있습니다.각 세션의 ID를 업데이트하고 사용자를 위해 SSL을 사용하는 등 사용자 세션에 적절한 보안 조치를 적용합니다.
또 다른 일회용 토큰을 생성하여 양식에 포함하고 세션(세션 변수)에 저장한 후 제출 시 확인하세요.
6. 코드 주입
코드 주입은 잘못된 데이터를 처리하여 컴퓨터 취약점을 악용하여 발생합니다. 문제는 일반적으로 파일 포함을 통해 실수로 임의의 코드를 실행할 때 발생합니다. 잘못 작성된 코드로 인해 원격 파일이 포함되고 실행될 수 있습니다. require와 같은 많은 PHP 함수와 마찬가지로 URL이나 파일 이름을 포함할 수 있습니다. 예:
[python]
< ;양식>
테마 선택:
if($theme) {
require($theme.'.txt')
}
?> ;
위의 예에서 "http://"로 시작하는 파일은 파일 이름 또는 사용자가 입력한 파일 이름의 일부를 전달하여 포함됩니다.
코드 삽입 방지
*사용자 입력 필터링
*php.ini 설정에서 허용_url_fopen 및 허용_url_include를 비활성화하세요. 그러면 원격 파일에 대한 require/include/fopen이 비활성화됩니다.
기타 일반 원칙
1. 특히 웹 서버/PHP가 ISP에 의해 관리되거나 웹 사이트가 다른 곳으로 마이그레이션/배포되어 향후 사용되지 않을 경우 애플리케이션을 보호하기 위해 서버 구성에 의존하지 마십시오. . 다른 곳으로 마이그레이션/배포하세요. 웹사이트 코드(HTML, JavaScript, PHP 등)에 보안 인식 검사/로직을 포함하세요.
2. 서버 측 보안 스크립트 설계:
- 예를 들어 단일 실행 라인 사용 - 단일 지점 인증 및 데이터 삭제
- 예를 들어 모든 보안에 민감한 페이지에 처리할 PHP 함수/파일을 포함 모든 로그인/보안 로직 검사
3. 코드가 최신 패치로 업데이트되고 패치되었는지 확인하세요.
관련 권장사항:
PHP 공격 웹사이트 방어 코드 - 공격 코드 역번역_PHP 튜토리얼
위 내용은 일반적인 PHP 공격(6가지 공격 유형에 대한 자세한 설명)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!