심도예방
심층 방어 원칙은 보안 전문가가 잘 알고 있는 원칙으로, 중복 보안 조치의 가치를 보여 주며 이는 역사에 의해 입증되었습니다.
심도 방어의 원리는 프로그래밍 분야뿐만 아니라 다른 분야로 확장될 수 있다. 예비우산을 사용한 스카이다이빙자는 중복적인 안전조치가 얼마나 가치가 있는지를 증명할 수 있다. 비록 사람들은 주우산이 효력을 상실하는 것을 결코 원하지 않는다. 중복 보안 조치는 주요 보안 조치의 잠재적 실패에서 중요한 역할을 할 수 있습니다.
프로그래밍 분야로 돌아가서 심도 있는 예방 원칙을 준수하려면 항상 백업 계획이 있어야 합니다. 만약 하나의 안전조치가 실패한다면, 다른 하나는 반드시 약간의 보호를 제공해야 한다. 예를 들어, 사용자 인증 논리에 알려진 결함이 없더라도 사용자가 중요한 작업을 수행하기 전에 사용자를 다시 인증하는 것이 좋습니다. 인증되지 않은 사용자가 어떤 식으로든 다른 사용자로 위장한 경우 비밀번호를 입력하라는 메시지가 나타나면 인증되지 않은 (인증되지 않은) 사용자가 특정 중요한 작업을 수행하지 못할 수 있습니다.
심층 방어는 합리적인 원칙이지만, 보안 조치를 과도하게 늘리면 비용을 늘리고 가치를 낮출 수밖에 없다.
소권력
나는 예전에 하인 열쇠가 달린 차를 가지고 있었다. 이 열쇠는 점화에만 사용할 수 있기 때문에 운전문, 콘솔, 트렁크를 칠 수 없습니다. 자동차를 시동하는 데만 사용할 수 있습니다. 주차 종업원에게 맡길 수 있는데, 이 열쇠는 다른 용도로 쓸 수 없다고 확신합니다.
주차 종업원에게 콘솔이나 트렁크를 열 수 없는 열쇠를 주는 것은 일리가 있다. 결국, 너는 귀중품을 이 곳에 두고 싶을 것이다. 그러나 나는 그것이 왜 문을 열지 못하더라도 말이 안 된다고 생각한다. 물론, 이것은 나의 관점이 권위를 회수하는 데 있기 때문이다. 나는 주차 종업원이 왜 문을 열 권리를 박탈당했는지 궁금하다. 이것은 프로그래밍에서 매우 나쁜 관점이다. 반대로, 당신은 어떤 권한이 필요한지 생각하고, 모든 사람에게 가능한 적은 권한을 주어 그의 일을 완성해야 한다.
하인 열쇠가 운전문을 열 수 없는 이유 중 하나는 이 열쇠가 복제될 수 있고, 이 복제된 열쇠는 나중에 차를 훔치는 데 사용될 수 있기 때문이다. 그럴 가능성은 별로 없지만, 이 예는 불필요한 허가가 약간의 권한을 추가해도 위험을 증가시킬 수 있다는 것을 보여 줍니다. (존 F. 케네디, 권한, 권한, 권한, 권한, 권한, 권한, 권한, 권한, 권한) 위험 최소화는 보안 프로그램 개발의 주요 구성 요소입니다.
너는 권리가 남용되는 모든 방식을 고려할 필요가 없다. 사실, 모든 잠재적 공격자의 행동을 예측하는 것은 거의 불가능하다.
단순함은 아름다움이다
복잡성은 오류를 낳고, 오류는 보안 취약점으로 이어질 수 있다. 이 간단한 사실은 단순함이 안전한 어플리케이션에 왜 그렇게 중요한지 설명합니다. 불필요한 복잡성은 불필요한 위험만큼 나쁘다.
노출 최소화
PHP 응용 프로그램에는 PHP 와 외부 데이터 소스 간의 잦은 통신이 필요합니다. 주요 외부 데이터 소스는 클라이언트 브라우저와 데이터베이스입니다. 데이터를 올바르게 추적하면 어떤 데이터가 노출되었는지 확인할 수 있습니다. 인터넷은 매우 공용 네트워크이기 때문에 인터넷에 데이터가 노출되지 않도록 항상 조심해야 합니다.
데이터 노출이 반드시 보안 위험을 의미하는 것은 아닙니다. 그러나 데이터 유출은 최소화해야 합니다. 예를 들어, 사용자가 결제 시스템에 들어가 신용 카드 데이터를 서버로 전송할 때 SSL 을 사용하여 보호해야 합니다. 카드 번호 정보가 서버에서 클라이언트로 전송되기 때문에 확인 페이지에 신용 카드 번호를 표시하려면 SSL 을 사용하여 보호해야 합니다.
예를 들어, 앞의 예에서 신용 카드 번호를 표시하면 노출 가능성이 높아진다는 것을 알 수 있습니다. SSL 은 실제로 위험을 줄일 수 있지만 좋은 해결책은 마지막 네 자리만 표시하여 위험을 완전히 제거하는 것입니다.
민감한 데이터의 노출을 줄이기 위해, 유서 컴퓨터 교육/당신은 어떤 데이터가 민감한지 확인해야 하며, 불필요한 데이터 노출을 모두 없애기 위해 추적해야 한다고 생각합니다. 이 책에서는 많은 일반적인 민감한 데이터를 보호하는 데 도움이 되는 몇 가지 기술을 보여 드리겠습니다.