배경
회사에서 서버를 유지 관리하도록 계약을 체결했습니다. 나는 몇 가지 사소한 PHP 프로젝트를 수행하지만 성능 문제를 검토하고 최근에는 해커의 로그를 스캔합니다.
이 사람들은 얼마 동안 서버를 운영하고 있으며 마지막 레그에서 레거시 애플리케이션이라고 부르는 것을 가지고 있습니다. 마법 따옴표, 전역 변수 ( $id
로 덮어 쓸 수 있음 $_GET['id']
)를 사용하고 .htaccess를 유일한 보안으로 사용하는 경우가 있습니다. 보안 및 프로그래밍 악몽.
우리는 과거에 SLEEP(99999999)
명령 을 실행 하고 DOS 공격의 역할을하는 SQL 인젝션으로 해킹당했습니다 . 다행히 그들은 "작은 바비 테이블"을 실행하지 않았습니다.
XKCD : http://xkcd.com/327/
그래서 나는 mysql_query()
mysqli가 아닌 취약한 SQL 문 을 PDO 트랜잭션에 다시 썼다 . 그리고 우리가 사용하지 않지만 주사에 대한 SLEEP
및에 대한 쿼리를 분석하고 UNION
있습니다. 여태까지는 그런대로 잘됐다.
최신호
최근 우리는 전자 메일 주소와 같은 사용자의 전자 메일 주소가 아마도 스패머가 만든 것으로 레코드가 DB에서 변경되고 있다고 들었습니다.
열에 열이없는 것을 알았 last_modified
으므로 누가 변경했는지는 알 수 없었습니다. 그 칼럼을 추가했지만 첫 단계는 아닙니다.
이 표를 살펴볼 때 비밀번호가 소금에 절이거나 해시되지 않고 평문으로 저장되는 것을 알았습니다.
고객 커뮤니케이션
매드 맨처럼 팔을 찢지 않고 계약자로서 전체 상황에 대해 어떻게 접근 할 수 있습니까? 어떤 충고? 나는 차분한 접근을 생각하고 있었다.
문제 # 1 개요 이것이 왜 문제인가 이것이 해결되지 않으면 어떻게됩니까? 제안 된 수정 문제 # 2 개요 이것이 왜 문제인가 이것이 해결되지 않으면 어떻게됩니까? 제안 된 수정