目次
PHP 開発のセキュリティ問題を整理します
多読
ホームページ バックエンド開発 PHPチュートリアル PHP 開発のセキュリティ問題の一部をまとめました

PHP 開発のセキュリティ問題の一部をまとめました

Apr 04, 2018 pm 02:24 PM
php 安全性 質問

PHP 開発のセキュリティ問題を整理します



PHP は開発者に大きな柔軟性を与えますが、セキュリティ問題に潜在的な潜在的な危険ももたらします。近い将来、私たちは過去を要約する必要があります。この問題について、記事を翻訳し、私自身の開発の感想も加えて、ここにまとめてみたいと思います。





はじめに

インターネット サービスを開発するときは、セキュリティの概念を常に念頭に置き、開発するコードにそれを反映する必要があります。 PHP スクリプト言語は、特に経験の浅い開発者のほとんどにとって、セキュリティの問題を心配しません。金銭が関係する取引について話すときは、フォーラムやショッピング カートの開発など、セキュリティに関する考慮事項に特別な注意を払う必要があります。


セキュリティ保護に関する一般的な注意事項

フォームを信頼しないでください

一般的なJavaScriptフロントエンド検証では、ブラウザのJavaScriptエンジンをオフにするなどユーザーの行動を知ることができないため、悪意のあるデータがPOSTされますサーバーに。検証はサーバー側で行う必要があり、XSS 攻撃や SQL インジェクションを防ぐために、各 PHP スクリプトに渡されるデータを検証します


ユーザーを信頼しないでください

Web サイトが受信するすべてのデータには次のものが含まれていると想定する必要があります。悪意のあるコード。隠れた脅威、すべてのデータを駆除する必要があります


グローバル変数を閉じる

php.ini ファイルで次の設定を行います:

register_globals = Off
ログイン後にコピー



この設定オプションがオンになっている場合、優れたセキュリティ 隠れた危険。たとえば、受け取ったデータをデータベースに挿入する process.php スクリプト ファイルがあります。ユーザー入力データを受け取るフォームは次のようになります。

<input name="username" type="text" size="15" maxlength="64">
ログイン後にコピー



このように、データが送信されるとprocess.php では、PHP は $username 変数を登録し、この変数データを process.php に送信し、そのような変数を POST または GET リクエスト パラメーターに設定します。初期化が表示されない場合、以下の問題が発生します(参考:http://www.lai18.com/content/434606.html)

<?php
// Define $authorized = true only if user is authenticated
if (authenticated_user()) {
    $authorized = true;
}
?>
ログイン後にコピー



ここでは、authenticated_user関数が、 $authorized 変数の値。 register_globals 構成がオンになっている場合、どのユーザーも $authorized 変数の値を任意の値に設定するリクエストを送信して、この検証をバイパスできます。

これらの送信データはすべて、$_POST、$_GET、$_FILES、$_SERVER、$_REQUEST などを含む、PHP の事前定義された組み込みグローバル配列を通じて取得する必要があります。$_REQUEST は $_GET/$_POST/$_COOKIE です。 3 つの配列のジョイント変数のデフォルトの順序は、$_COOKIE、$_POST、$_GET です。


推奨されるセキュリティ構成オプション

error_reporting をオフに設定します: エラー情報をユーザーに公開しません

セーフモードをオフに設定します

register_globals をオフに設定します

次の機能を無効にします。 、exec、passthru、shell_exec、proc_open、popen

open_basedir は /tmp に設定され、これによりセッション情報にストレージ権限が与えられ、別の Web サイトのルート ディレクトリが設定されます

expose_php は Off に設定されます

allow_url_fopen は Off に設定されます

allow_url_include が Off に設定されています


SQL インジェクション攻撃

データベースを操作する SQL ステートメントについては、ユーザーが元の SQL ステートメントの機能を変更する特定のステートメントを入力する可能性があるため、セキュリティに特別な注意を払う必要があります。次のような例:


多読


「PHP セキュリティ プログラミング シリーズ」シリーズの技術記事を整理して収集しています

PHP セキュリティ プログラミング シリーズのお気に入りは、PHP セキュリティ プログラミングに関する知識を収集し、PHP セキュリティ プログラミングの学習リファレンスを提供します

1discuz の PHP は SQL インジェクション関数を防ぎます

2 PHP での xss 攻撃を防ぐ方法

3 PHP 安全なプログラミング: 出力をエスケープする

4 PHP 安全なプログラミング: ユーザー入力をフィルターする

5 PHP 安全なプログラミング: ユーザビリティとデータ追跡

6PHP セキュア プログラミング: 関係のない人にエラー メッセージを見させないでください

7PHP セキュア プログラミング: register_globals のセキュリティ

8PHP セキュア プログラミング: Web サイトのセキュリティ設計のいくつかの原則

9 防御

13PHP セキュア プログラミング: フォームとデータ セキュリティ

14PHP セキュア プログラミング: URL のセマンティクスからの攻撃

15PHP セキュア プログラミング: ファイル アップロード攻撃の防御

1 6PHP セキュア プログラミング: クロスサイト スクリプティング攻撃の防御

17PHP セキュア プログラミング: 正規セッションのセッション固定取得

18PHP セキュア プログラミング: SQL インジェクションの防止

19PHP セキュア プログラミング: Cookie の漏洩セッションハイジャックにつながる

20PHPセキュアプログラミング: ソースコードの公開を防ぐ

21PHPセキュアプログラミング: バックドアURLに注意

22PHPセキュアプログラミング: セッションハイジャックに対する防御

23 PHP セキュア プログラミング: ブルート フォース クラッキング攻撃

24PHP セキュア プログラミング: パスワード スニッフィングとリプレイ攻撃

25PHP セキュア プログラミング: ログイン ステータスを記憶するための安全な方法

26PHP セキュア プログラミング: シェル コマンド注射

27PHP セキュア プログラミング: リモート ファイルを開くリスク

28 PHP セキュア プログラミング: ファイル ディレクトリの推測の脆弱性

29 PHP セキュア プログラミング: ファイル名が操作されるのを防ぐ

30 ペソセキュア プログラミング: ファイルに含まれるコード インジェクション攻撃

31PHP セキュア プログラミング: セッション データ セキュリティの向上

32PHP セキュア プログラミング: 共有ホスティングのソース コード セキュリティ

33PHP セキュア プログラミング: セッション データ インジェクション

34PHP 安全なプログラミング: ホスト ファイル ディレクトリの参照

35PHP 安全なプログラミング: PHP セーフ モード

36php 安全性は、$_GET 文字をエスケープせずに $ を使用して直接値を取得します

37php 脆弱性を防ぐ戦略を立てて高パフォーマンスの Web を作成します

38 XSS 攻撃とは何ですか? PHP XSS攻撃防止機能

39 フォームの繰り返し送信を防ぐPHPメソッドの解析

40php security Dog Tail 継続 mink

41PHP はクロスドメインフォームの送信を防止します

42php は SQL インジェクションの詳細な説明と防止を防止します

43php は SQL インジェクションのコード例を防止します

44php は SQL インジェクションのサンプル分析といくつかの一般的な攻撃正規表現を防止します

45ソースコードや重要な設定情報の公開を防ぐPHPセキュリティ

46投稿が繰り返しデータを送信するのを防ぐPHP簡単な例

47URL送信による偽造データを防ぐPHPメソッド

48PHP フォームの繰り返し送信を防ぐいくつかの一般的な方法のまとめ

49php アドレスバー URL からの偽造データの送信を防ぐ方法

50php オフサイトからのフォームのリモート送信を防ぐ方法

51phpの防止 SQLインジェクション用のページングパラメータのフィルタリングの例

52 PHPセキュリティ: Apacheモードでインストールする場合に考えられる攻撃と解決策

53 PHPセキュリティ: ファイルシステムのセキュリティと予防策

54 PHP セキュリティ ファイルシステムのセキュリティ - ヌル文字の問題

55 PHP セキュリティ データベースのセキュリティ - SQL インジェクションと予防策

56 PHP セキュリティの概要と一般原則

57 PHP のセキュリティは可能CGI モードでインストールした場合 遭遇した攻撃と解決策

58PHP セキュリティ ユーザー送信データ

59PHP セキュリティ データベース セキュリティ - 設計、接続、暗号化

60PHP セキュリティ 魔法の引用符 - 魔法の引用符とは何か、そしてその方法使用するには

61PHP セキュリティ PHP スクリプト拡張機能の隠蔽

62登録グローバルを使用した PHP セキュリティ

63PHP セキュリティ エラー報告

64php 悪意のあるものを防ぐリフレッシュとチケットのブラッシング方法

65php Web サイトの更新を防ぐ方法

66 PHP Web サイトの一般的なセキュリティ脆弱性の概要と、対応する予防策

関連推奨事項:

PHP 開発におけるセキュリティ問題の関連概要_ PHP チュートリアル

以上がPHP 開発のセキュリティ問題の一部をまとめましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

アクション中のPHP:実際の例とアプリケーション アクション中のPHP:実際の例とアプリケーション Apr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHP:Web開発の重要な言語 PHP:Web開発の重要な言語 Apr 13, 2025 am 12:08 AM

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHP対Python:違いを理解します PHP対Python:違いを理解します Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPの永続的な関連性:それはまだ生きていますか? PHPの永続的な関連性:それはまだ生きていますか? Apr 14, 2025 am 12:12 AM

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PHP対その他の言語:比較 PHP対その他の言語:比較 Apr 13, 2025 am 12:19 AM

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

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

See all articles