개발 꿀팁/PHP

PHP 코드 감사 입문

Jammie 2022. 7. 19. 15:19
반응형

카테고리

1: 코드 감사의 정의

2: PHP 학습 코드를 선택한 이유감사

3. 입문 준비

4. PHP에서 흔히 볼 수 있는 방법

4.1 코드 구조

4.2 디렉토리 구조

4.3 참고항목

5: 코드 디버깅 방법

육: 코드 감사의 본질

1: 코드 감사의 정의
프로그램의 소스를 읽음으로써코드-불규격 코드, 알고리즘 성능 부족, 코드 재사용성 부족 및 기타 결함 등 잠재적인 취약점을 발견한다.

안전요원의 관점에서예:코드에 보안 문제가 있는지 찾아보고 사용자가 코드 대응 기능을 조작할 때 개발자가 상상한 장면에서 튀어나올 수 있는지 추정한다.

논리와 함께, 웹사이트의 데이터를 준다.혹은 서버에 피해를 줄 수도 있다.예를 들어 쇼핑 결제를 할 때 정상 사용자는 결제를 하고 구매를 마치면 그 기능이 남아 있지 않을까 하는 생각을 합니다.

0원에 구입 등 논리적 결함。

그 다음 코드 감사에서 찾을 수 있습니다.일부 스캐너에서 찾기 어려운 세부 사항, 예를 들어 특정 기능 장면은 특정 매개 변수 값을 불러올 때만 트리거합니다.

취약점, 이 경우 검색그릇은 발견하기 매우 어렵다.

둘: 왜 PHP를 선택했는가학습 코드 감사
PHP는 선천적으로 개발용이다.웹 프로그램의 경우, "PHP가 세계에서 가장 좋은 언어"라는 이전 줄임말처럼, 가장 큰 이유는 PHP가 작성한 다양한 프로그램들, 예를 들어 cms 상들도시 이론

단 블로그 등이 시장을 점거하다위의 절대적인 몫은 이후의 허점 발굴에서 흔히 볼 수 있다.둘째, PHP는 공식적인 중국어 자료 문서가 매우 풍부하여 각 단계에 적합하다.

사람은 공부하러 간다.

링크: http://php.net/manual/zh/index.php

3. 입문 준비
1.PHP의 프로그래밍 기초

2.환경조성능력(이유)우리의 환경은 코드를 뛰게 하기 위한 것이지, 실제 온라인은 아니기 때문에 편리한 통합 툴 패널, 예를 들어 PHP study를 추천합니다.

화보탑)

4. PHP에서 흔히 볼 수 있는 방법

이러한 소위 말하는 방식은 다른 프로그래밍 언어에도 존재하는데, 단지 통용과 적용의 문제일 뿐이니, 우리는 하나를 두고 셋을 배워야 한다.

4.1 코드 구조
일반적인 코드 구조는 두 가지이다.

1.HTML과 PHP코드 혼용으로 특징적인 것은 하나의 url이 하나의 PHP페이지에 대응한다는 것입니다. 예를 들어 WordPress의 로그인 페이지 http: // wordpress.com.test/wp-login.php

2.MVC 모드

Model View Controller의 3부 구조로 분할,

모델은 일반적으로 데이터베이스 조작과 관련된 코드입니다. 예를 들어 jsp의 자바빈용데이터 속성과 행을 디자인합니다.위해서, 속성 가져오기 및 설정 속성의 제공성적 get/set 방법

뷰는 일반적으로 HTML 코드와 기타 프로그래밍 언어의 혼용 결과로, 일부 컨트롤러를 전송할 수 있다.넘겨준 결과, 진행.맞춤 스플라이스

제어기의 코드는 일반적으로 데이터를 받아들이고, 데이터를 몇 가지 검사하고, 권한을 판정하고, 호출한다.모델의 데이터베이스 운영 코드얻은 데이터를 주고받는 것

보기, 그리고 보기 HTML 코드를 클라이언트로 보냅니다

MVC에서 흔히 볼 수 있는 표현 형식은 일반적으로 하나의 입력 파일이 있으며, 이 입력은 일반적으로 index.php입니다.

4.2 디렉토리 구조
라이브러리나 플러그인을 불러옵니다. 폴더 이름은 일반적으로 librarie/lib/plugin입니다.
현대의 PHP 프로젝트는 또한 Vendor 폴더가 있는데, PHP의 패킷 관리자 설치 의존 코드 저장 경로이다.
보기 코드 폴더 이름은 일반적으로 layout, theme, template, view라고 합니다.
컨트롤러 폴더는 일반적으로 controller라고 합니다
공통의 몇몇 코드 폴더는 일반적으로 comon이라고 불린다.
일부 도구 함수는 helper/util/tools 폴더에 있을 수 있습니다
Config 폴더에 설정 파일 저장
components 또는 modules: 여기에 mvc 코드가 있어 서로 기능을 독립시킨다.
route.php: 다른 url에 대해 다른 코드를 호출합니다

4.3 참고항목
https://github.com/fecshop/yii2_fecshop

https://github.com/PrestaShop

https://github.com/opencart/opencart

https://github.com/joomla/joomla-cms

5: 코드 디버깅 방법
1.소스코드 직접수정, var_dump()를 이용하여 변수를 출력한 후, 다른 분기에 echo 문자열로 표시를 합니다.메모, 그리고 die 함수로 코드 종료

2.xdebu 사용g확장

3.네트워크 관련 디버깅wiresharek을 통해 인터넷 통신을 볼 수 있다.

육: 코드 감사의 본질
코드 감사는 일종의 경험이다.에 대항하고 억압하는 것: 내가 너보다 더 많이 알고 있다면 경험은 당신을 억압할 수 있다. 만약 너의 기능이 그것을 고려하지 않는다면.점, 그러면 존재할 것이다.

취약점. 예를 들어 리치 텍스트의 경우본 xss 필터링 방안은 업계 최적해가 이미 생성되었으며, 당신이 최적해를 사용하지 않고 프로그래밍할 때 인터넷에서 초월한다.코드 한 토막으로 사용한다면

감사할 때 출산한다압제가 붙다.

너의 수준과 개발이 있다면수평은 아니다. 상하의 경우, 상대의 코드나 알고리즘에 의해서만 다른 장면+파라미터들을 상정하고 구성할 수 있다.심지어 fuzz를 통해서도 실험이 되고

허점 여부를 증명하다.

반응형