보안 방명록은 PHP로 작성된 웹 응용 프로그램입니다. 데이터 지속성은 MySQL로 구현됩니다.
이 데모는 "PHP와 MySQL을 제외하고는 아무것도 얻지 못합니다. 안전한 앱을 작성해야합니다. 가능한 것을 보여 주어야합니다."
이것은 또한 당신에게 도전 할 수 있습니다.이 앱을 배포하고, 고문하고, 해킹하고, 앱 수준의 결함이 있음을 증명하십시오. 나는 95%가 없다고 확신합니다. 내가 틀렸다는 것을 보여줘.
이 앱은 휠을 재창조하는 것이 아닙니다. 그렇습니다. 좋은 OpenSource 프레임 워크와 Libs가 많이 있습니다.
이것은 우리가 매일 사용하는 프레임 워크의 내부 특성을 이해하는 데있어서, 그것이 우리가 만든 앱의 보안, 확장 성 및 유지 관리에 미치는 영향에 관한 것입니다.
이 작업은 타사 라이브가없는 순수한 PHP로 데모 앱을 작성하는 것입니다.
이 앱은 다음 Opts가있는 방명록입니다. 사용자 가입, 로그인 및 로그 아웃, 메시지 작성, 편집, 삭제, 회신 추가.
이 작업은 올바른 디자인이 안전한 응용 프로그램을 만드는 가장 좋은 방법임을 입증하기 위해 타사 리브가없는 순수한 PHP로 데모 앱을 작성하는 것입니다.
간단한 앱을 지나치게 단순화 된 방식으로 작성하려는 명백한 유혹에도 불구하고, 그 접근법의 더 명백한 결함이 있습니다. 앱에 대한 제어를 느슨하게하고 그 단순성의 한계에서 익사했습니다.
그렇습니다. HTML과 혼합 된 10 개의 확장 불가능한 PHP 스크립트를 작성하는 것보다 간단하지만 기능적인 MVC 프레임 워크를 작성하는 것이 좋습니다.
이 데모를 위해 보일러 플레이트 MVC와 같은 환경이 처음부터 작성되었습니다. 순수한 불완전한 초기 단순 HTML의 인터페이스.
모든 처리는 요청 객체의 수명주기에서 다음과 같은 순서로 돌연변이됩니다.
도전은 주로 앱 작성에 관한 것이었기 때문에 가능한 한 안전한 앱을 작성하는 것이었기 때문에 다음과 같은 장간간 목록이 앱을 시행했습니다.
브레이크 인치 시도의 수를 제한하기 위해 로컬 단순화 실패 2BAN은 Buil-in입니다.
주요 기능은 다음과 같습니다.
오류 및 요청 수량에 대한 금지 임계 값은 구성 가능합니다.
백본 서브 시스템에 제공되는 매우 기본적인 양의 테스트.
전제 조건 : PHP 7 (PDO_MYSQL, OPENSSL), 작곡가 (PHPUNIT 전용), HTTP 서버
WEBAPP_BASEDIR - should point to src/ folder
WEBAPP_STORAGE_MYSQL_HOST
WEBAPP_STORAGE_MYSQL_USER
WEBAPP_STORAGE_MYSQL_PASSWORD
WEBAPP_STORAGE_MYSQL_DB
src/public 을 가리 키도록 웹 서버의 문서 루트를 구성하십시오. phpunit --bootstrap tests/bootstrap.php tests/ApplicationTest.php
getErrorsTillBan 및 getRequestsTillBan 조정하십시오.