>백엔드 개발 >PHP 튜토리얼 >모든 PHP 개발자가 읽어야 할 책

모든 PHP 개발자가 읽어야 할 책

WBOY
WBOY원래의
2016-08-08 09:32:04908검색

PHP는 최근 몇 년 동안 평판이 나빴습니다. "나쁜 디자인 요약"과 구문적 불일치에 대해 많은 논의가 있지만 가장 큰 불만은 일반적으로 보안입니다. 많은 PHP 사이트는 몇 분 만에 해킹되며, 경험 많고 지식이 풍부한 일부 프로그래머조차도 언어 자체가 안전하지 않다고 말할 것입니다.

상식적인 이유로 PHP 보안 위반이 너무 많기 때문에 저는 항상 이에 반대합니다.

PHP 애플리케이션은 다음과 같은 이유로 해킹되는 경우가 많습니다.

  • PHP 애플리케이션이 너무 많습니다.
  • 배우고 쓰기 쉽습니다.
  • 나쁜 PHP는 작성하기 쉽습니다.

참 간단해요. PHP는 수년 동안 인기를 끌었습니다. PHP가 인기를 끌수록 더 많은 취약점이 발견됩니다. 이러한 해커가 발견한 취약점은 PHP 처리 엔진 자체에는 거의 없지만 일반적으로 스크립트 자체의 약점입니다.

이는 PHP 애플리케이션이 해킹되면 대부분 프로그래머의 잘못이라는 의미입니다. 죄송합니다. 하지만 사실입니다.

다른 웹 언어와 마찬가지로 보안 PHP를 작성할 수 있습니다. 이제 실제로 보안 문제를 탐구할 시간입니다.

PHP 해킹에 대한 최고의 보호

보안 PHP 코드 작성은 PHP 개발자에게 숨겨진 비밀스러운 기술이 아닙니다. 그러나 신뢰도가 너무 분산되어 있어 좋은 보안 관행에 대한 느슨한 카탈로그나 경험 법칙을 수집하는 데 몇 주 또는 몇 달(또는 그리 오래 걸리지 않음)이 필요합니다. 진정한 경험만이 그것이 얼마나 중요한지 알려줄 것입니다.

다행히도 Ben Edmunds가 이를 해냈습니다. 최근에는 제가 읽은 최고의 보안 관련 책 중 하나이자 확실히 PHP에 대한 최고의 내용을 다루는 Building Secure PHP Apps - a Practical Guide를 출판했습니다. 이 글에서는 모든 PHP 개발자가 이 글을 읽어야 하는 이유를 자세히 설명하겠습니다.

이 책은 여러분이 개발자로서 다음 단계로 나아갈 수 있도록 도와주는 간결한 가이드로서 여러분이 더 좋고 안전한 스크립트를 만들 수 있도록 도와줍니다.

소개

이 책은 웹 개발의 상식적인 규칙을 빠르게 다룹니다. 사용자를 믿지 말고 모든 입력을 필터링하세요. 작은 시나리오로 시작하여 사용자가 시스템에 들어갈 수 있는 기술적 방법으로 넘어갑니다. 1장의 주제는 다음과 같습니다.

  • SQL 인젝션
  • 다양한 과제 분야
  • 유형 변환
  • 필터 입력/출력

이는 PHP 초보자(및 일부 베테랑)가 항상 간과했던 사항입니다. 입력 필터링은 많은 사람들에 의해 선택적인 단계로 간주되며 이 장에서 광범위하게 논의됩니다.

읽으면서 몇 년 전 직장에 처음 출근하던 날, 기존 코드를 파헤쳐 새 사용자 생성 스크립트에 대한 코드를 찾았던 일이 떠올랐습니다.

?

1

2

3

if ($_POST["isadmin"] == 1) {

// code to set to admin in database

}

1 2

3

if ($_POST["isadmin"] == 1) {

// 데이터베이스에서 관리자로 설정하는 코드

1

$sql = "INSERT INTO database (id,name,...) VALUES (" . $_POST["Name"] . ");"

}
이 코드는 악의적인 사용자가 쉽게 추측하고 간단한 양식 변수를 삽입하여 약 5,000개의 신용 카드 번호 및 기타 개인 정보에 액세스할 수 있는 매우 효과적인 스크립트이기 때문에 이 코드를 보고 당황했습니다. 더 깊이 파고든 결과 다음 코드를 발견했습니다. ?
1 $sql = "INSERT INTO 데이터베이스 (id,name,...) VALUES (" . $_POST["이름"] ");"

이 끔찍한 코드에 의존하고 있었기 때문에 저는 첫날 그 직장을 거의 그만뒀습니다. 코드는 거기에 있으며 더 이상 생성되지 않도록 코드를 변경하는 것은 귀하의 책임입니다.

이 장에서는 이와 같은 코드가 왜 큰 위험을 초래하는지와 이를 해결하는 방법에 대해 설명합니다.

HTTPS 및 인증서

이는 Ben이 스크립트, 스토리, 약간의 유머를 포함하는 동시에 덜 명확한 HTTPS 개념을 명확하게 설명하는 또 다른 영역입니다. 상사도 이해할 수 있도록 설명해줍니다.

이 책에서는 Apache 또는 Nginx에 배포하는 방법까지 포함하여 인증서 작동 방식, 인증서 유형 및 구현 방법을 매우 포괄적으로 설명합니다.

비밀번호

이 책은 사용자 로그인 시스템을 만드는 개발자에게 매우 유용한 비밀번호, 해시, 조회 테이블, 솔트에 대해 자세히 설명합니다.

2014년에도 너무 부족했던 부분이에요. 나는 여전히 비밀번호를 일반 텍스트로 저장하거나 ROT13 암호화와 같은 어리석은 방법을 사용하여 비밀번호를 보호하는 앱을 접합니다. 사람들이 귀하의 앱을 계속 사용하고 귀하의 명예를 유지하려면 이 작업을 수행하지 마십시오.

비밀번호 및 기타 민감한 데이터는 얻기가 매우 어렵거나 데이터베이스에 대한 전체 액세스 권한을 얻기도 어렵습니다. 이 책은 매우 포괄적이며 더 나은 시스템을 설계하는 데 좋은 지침을 제공할 것입니다.

인증 및 접근 제어

이 책에서 다루는 주제는 매우 포괄적입니다. 새로운 PHP 애플리케이션을 구축할 때 가장 먼저 고려해야 할 사항은 다음과 같습니다.

  • 누가 어떤 리소스에 액세스할 수 있나요?
  • 다른 사용자의 액세스를 누가 제어할 수 있나요?

이곳은 애플리케이션, 특히 민감한 데이터를 처리하는 애플리케이션에 대해 생각해 볼 중요한 부분입니다. 기업 개발의 ​​상당 부분이 이에 전념하고 있습니다. 인증 및 접근 제어를 올바르게 설정하지 않으면 사용자에게 혼란을 주고 더 많은 작업을 생성하게 될 가능성이 가장 높습니다. 이보다 더 심각한 것은 서버 데이터 격차 및/또는 데이터 손상입니다.

이 책은 기본 사항을 잘 다룬 다음, 참조할 수 있는 많은 코드 예제를 통해 파일이나 애플리케이션의 개별 페이지에 대한 액세스 제어와 같은 내용을 자세히 설명합니다.

특정 용도

시스템을 손상시키는 몇 가지 일반적인 악용 사례를 다루는 이 책에서는 공격자가 애플리케이션을 악용하는 가장 일반적인 방법인 크로스 사이트 스크립팅을 매우 자세히 살펴봅니다. 다양한 종류의 공격과 자신을 보호하는 방법을 설명합니다.

나쁘지 않죠? 링크를 통해 책을 할인된 가격으로 구매하실 수 있습니다!

이 책에서 가장 마음에 드는 점

이 책을 읽으면서 정말 즐거웠던 점은 초보자와 숙련된 프로그래머 모두에게 유용한 방식으로 정보를 제공한다는 것입니다. 다양한 개념, 그것이 무엇인지, 자신을 보호하는 방법이 제시됩니다. 일부 기술 서적에 있는 "패딩"이 아닌 코드 예제가 많이 있습니다.

이 책은 내용이 많지 않아 금방 읽을 수 있습니다. 초보자는 이 책을 읽고, 각 주제를 검토하고, 코드를 살펴보고, 수정할 수 있습니다. 이 문제에서는 계속해서 수정해야 한다는 점을 기억하세요. 돌이켜보면 6개월 전에 작성한 코드가 부끄럽다면 옳은 일을 하고 있는 것입니다.

더 숙련되고 숙련된 프로그래머는 이 가이드를 사용하여 자신의 약점을 보완하고(이 업계에 얼마나 오래 종사했더라도 약점이 있음을 인정) 작업 시스템에서 사용하는 도구를 더 잘 이해할 수 있습니다. 예를 들어, 나는 수년 동안 인증을 미친 듯이 사용해왔지만 이 책에서 다루는 수준에서는 생각해 본 적이 없습니다.

당신이 누구이든, 당신은 뭔가를 배울 것입니다. 그러니 이 기사를 읽지 말고 가서 사본을 구입하세요! 이 링크를 이용하여 구매하고 할인 받으세요! !

면책조항

제 블로그에는 댓글을 많이 달지 않아서 궁금한 점이 있으실 수도 있겠네요. 명확히 하자면, 저는 리뷰에 대한 대가나 보상을 받지 않았습니다. 위의 쿠폰 코드는 내 블로그 독자들에게 원래 책 가격에서 4달러 할인을 제공하며, 나는 어떤 돈도 받지 못합니다. 물론 나는 리뷰 목적으로 이 책의 홍보용 사본을 받았습니다.

저는 이 작가를 개인적으로 알고 있습니다. 이것이 제가 이 책에 담긴 정보를 신뢰하고 그의 지침을 전적으로 신뢰하는 이유 중 하나입니다. Ben Edmunds는 최근 몇 년간 PHP 커뮤니티에 큰 영향을 미쳤습니다. 그는 폴란드 PHP 사용자 그룹의 리더 중 한 명입니다. 최근 몇 년. 그는 자신의 일을 잘 알고 있으므로 여기에 제시된 정보를 신뢰할 수 있다고만 말하면 충분합니다.

  • 원본 주소: http://www.jeremymorgan.com/blog/programming/the-book-every-php-dev-should-read/
  • 참고 1: ROT13(13자리 회전, 중간에 하이픈이 있는 ROT-13이라고도 함)은 간단한 대체 비밀번호입니다. http://zh.wikipedia.org/wiki/ROT13

위 내용은 PHP 개발자라면 꼭 읽어야 할 책들을 소개하고 있으며, 관련 내용도 포함되어 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.