検索
ホームページバックエンド開発PHPチュートリアルすべての PHP 開発者が読むべき本

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

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

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

  • PHP アプリケーションが多すぎます。
  • 学ぶのも書くのも簡単です。
  • 下手なPHPも書きやすい。

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

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

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

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

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

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

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

はじめに

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

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

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

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

?

1

2

3

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

// code to set to admin in database

}

このコードを見たとき、私はパニックになりました。これは、悪意のあるユーザーが簡単に推測して、単純なフォーム変数を挿入して、約 5,000 のクレジット カード番号やその他の個人情報にアクセスできる非常に効率的なスクリプトだからです。

さらに詳しく調べたところ、次のコードが見つかりました:

?

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

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

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

上記では、PHP 開発者が読むべき書籍を関連コンテンツも含めて紹介しています。PHP チュートリアルに興味のある友人の参考になれば幸いです。

1

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

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPおよびPython:さまざまなパラダイムが説明されていますPHPおよびPython:さまざまなパラダイムが説明されていますApr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPython:彼らの歴史を深く掘り下げますPHPとPython:彼らの歴史を深く掘り下げますApr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPとPythonの選択:ガイドPHPとPythonの選択:ガイドApr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPとフレームワーク:言語の近代化PHPとフレームワーク:言語の近代化Apr 18, 2025 am 12:14 AM

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

PHPの影響:Web開発などPHPの影響:Web開発などApr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?Apr 17, 2025 am 12:24 AM

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHP対Python:ユースケースとアプリケーションPHP対Python:ユースケースとアプリケーションApr 17, 2025 am 12:23 AM

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境