ホームページ  >  記事  >  バックエンド開発  >  すべての PHP 開発者が読むべき本

すべての PHP 開発者が読むべき本

WBOY
WBOYオリジナル
2016-06-13 12:12:40833ブラウズ

すべての PHP 開発者が読むべき本

近年、PHP の評判は悪くなりました。その「悪い設計の概要」と構文の矛盾については多くの議論がありますが、主な不満は通常セキュリティです。多くの PHP サイトは数分でハッキングされ、経験豊富で知識のあるプログラマーでさえ、言語自体が安全ではないと言う人もいます。

常識的な理由から、PHP のセキュリティ違反が非常に多いため、私は常にこれに反対しています。

PHP アプリケーションは、次のような理由でハッキングされることがよくあります。

  • PHP アプリケーションが多すぎます。
  • 学んだり書いたりするのは簡単です。
  • 悪い PHP は書きやすいです。

とても簡単です。 PHP は長年にわたって人気がありました。 PHP の人気が高まるにつれて、より多くの脆弱性が発見されます。これらのハッカーによって発見された脆弱性が PHP 処理エンジン自体に存在することはほとんどありませんが、通常はスクリプト自体の弱点です。

これは、PHP アプリケーションがハッキングされる場合、その原因はほとんどがプログラマであることを意味します。申し訳ありませんが、本当です。

他の Web 言語と同じように、安全な PHP を作成できます。セキュリティ問題を本格的に検討し始める時期が来ました。

PHP ハッキングに対する最善の保護

安全な PHP コードを書くことは、PHP 開発者に隠された秘密の黒魔術ではありません。しかし、信頼性は非常に細分化されているため、適切なセキュリティ実践に関する大まかなカタログや経験則を収集するのに数週間から数か月 (またはそれほど長くはかからない) を費やす必要があります。それがどれほど重要であるかは、本当の経験だけが教えてくれます。

幸いなことに、Ben Edmunds がそれをやってくれました。最近出版された『Building Secure PHP Apps – a Practical Guide』は、私がこれまでに読んだセキュリティ関連書籍の中で最も優れた書籍の 1 つであり、間違いなく PHP について最も詳しく解説されています。この記事では、すべての PHP 開発者がこの本を読むべきだと私が考える理由を詳しく説明します。

この本は、開発者として次のレベルに進み、より優れた、より安全なスクリプトを構築できるようにするための簡潔なガイドです。

はじめに

この本では、Web 開発の常識ルール、つまりユーザーを信頼しないこと、すべての入力をフィルターすることについてすぐに説明します。小さなシナリオから始めて、ユーザーがシステムに入る技術的な方法に進みます。最初の章のトピックは次のとおりです:

  • SQL インジェクション
  • 割り当てられた多数のフィールド
  • 型変換
  • 入力/出力のフィルタリング

これらは、PHP 初心者 (および一部のベテラン) が常に見落としてきたことです。入力のフィルタリングは多くの人にとってオプションのステップであると考えられており、この章で詳しく説明します。

読みながら、何年も前の初出勤日を思い出しました。そのとき、既存のコードを深く掘り下げて、新しいユーザー作成スクリプトのコードを見つけました。

?
1
1
2
3
if ($_POST["isadmin"] == 1) {
// code to set to admin in database
}
2
3
if ($_POST["isadmin"] = = 1 ) {

// データベースで admin に設定するコード
}

このコードを見たときパニックになりました。これは、悪意のあるユーザーが簡単に推測して、単純なフォーム変数を挿入して約 5,000 のクレジット カード番号やその他の個人情報にアクセスできる非常に効果的なスクリプトだからです。
1
$sql = "INSERT INTO database (id,name,...) VALUES (" . $_POST["Name"] . ");"
さらに詳しく調べたところ、次のコードが見つかりました: ?
1
$sql = "INSERT INTO データベース (id,name,...) VALUES (" . $_POST["名前" ] " );"

彼らがこの恐ろしいコードに依存していたため、私は初日でその仕事を辞めることになりました。コードはそこにあります。これ以上コードを作成しないようにコードを変更するのはあなたの責任です。

この章では、このようなコードが大きなリスクを伴う理由とその修正方法について説明します。

HTTPS と証明書

これは、Ben がスクリプト、ストーリー、ちょっとしたユーモアを盛り込みながら、あまり明確ではない HTTPS の概念も明確に説明するもう 1 つの領域です。上司にも分かるように説明してくれます。

この本では、証明書の仕組み、証明書の種類、実装方法を、Apache または Nginx での展開方法も含めて、非常に包括的に説明しています。

パスワード

この本では、パスワード、ハッシュ、ルックアップ テーブル、ソルトについて丁寧に説明しています。これは、ユーザー ログイン システムを作成する開発者にとって非常に役立ちます。

これは、2014 年でも大きく欠けていた領域です。パスワードを平文で保存したり、パスワードを保護するために ROT13 暗号化などの愚かな方法を使用したりするアプリを今でも見かけます。人々にあなたのアプリを使い続けてもらい、あなたの評判を良くするために、このようなことはしないでください。

パスワードやその他の機密データは、取得することも、データベースへの完全なアクセス権を取得することさえも非常に困難である必要があります。この本は非常に包括的であり、より良いシステムを設計するための優れたガイダンスを提供します。

認証とアクセス制御

この本は、非常に包括的なトピックをカバーしています。新しい PHP アプリケーションを構築する場合、最も重要な考慮事項は次のとおりです。

  • 誰がどのリソースにアクセスできるか?
  • 他のユーザーのアクセスを制御できるのは誰ですか?

これは、アプリケーション、特に機密データを扱うアプリケーションを考慮する重要な場所です。企業内の開発のかなりの部分がこれに当てられています。認証とアクセス制御が正しく設定されていない場合、最も可能性が高いのは、ユーザーを混乱させ、作業が増えることです。これよりもさらに悪いことに、サーバー データのギャップやデータの破損があります。

この本は基本をうまくカバーしており、その後、ファイルやアプリケーションの個々のページへのアクセスの制御などについて詳しく説明しており、参照用のコード例が多数あります。

特定のエクスプロイト

本書では、システムを侵害するための一般的なエクスプロイトをいくつか取り上げ、おそらく攻撃者がアプリケーションを悪用する最も一般的な方法であるクロスサイト スクリプティングについて詳しく説明します。さまざまな種類の攻撃と身を守る方法について説明します。

悪くないですよね?このリンクから書籍を割引価格で購入できます!

この本で私が最も気に入った点

この本を読んで本当に気に入ったのは、初心者と経験豊富なプログラマの両方に役立つ方法で情報が提示されている点です。さまざまな概念が説明され、その概念と自分自身を守る方法が示されています。一部の技術書にあるような「詰め込み」ではなく、コード例が豊富にあります。

この本は内容が少ないのですぐに読み終えることができます。初心者はこの本を読み、各トピックを調べ、コードを確認し、修正することができます。この点に関しては、常に見直しを行う必要があることを忘れないでください。振り返ってみて、6 か月前に書いたコードを恥ずかしく思うなら、あなたは正しいことをしているということです。

より高度で経験豊富なプログラマーは、このガイドを使用して自分の弱点を補い (この業界にどれだけ長く従事しているかは関係ありません)、使用されている作業システムで何をしているのかをよりよく理解できます。たとえば、私は何年も認証を狂ったように使ってきましたが、この本で取り上げているレベルで認証について考えたことはありませんでした。

あなたが誰であっても、あなたは何かを学ぶでしょう。したがって、この記事を読むのをやめて、本を購入してください。このリンクを使用して購入し、割引を受けてください。 !

免責事項

私のブログではあまりコメントしないので、いくつか質問があるかもしれません。念のために言っておきますが、私はレビューに対して支払いや補償を受けていません。上記のクーポン コードを使用すると、私のブログの読者は元の書籍の価格から 4 ドル割引されますが、私は金銭を受け取ることはありません。もちろん、レビュー用にこの本の宣伝用のコピーを受け取りました。

私はこの著者を個人的に知っており、それがこの本の情報を信頼し、彼の指導を完全に信頼する理由の 1 つです。 Ben Edmunds は、近年 PHP コミュニティに大きな影響力を持っています。彼は、ポーランドの PHP ユーザー グループのリーダーの 1 人であり、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
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。