ホームページ バックエンド開発 PHPチュートリアル セキュリティのヒント - 安全な PHP コードの書き方_PHP チュートリアル

セキュリティのヒント - 安全な PHP コードの書き方_PHP チュートリアル

Jul 21, 2016 pm 02:56 PM
php コード できる どうやって 安全性 所有者 スキル 書く ネット Webサイト 私自身の

Web サイトの所有者または実務者として、私たちは Web サイトが安全に運営されることを望んでいますが、多くの場合、Web サイト開発中の小さな見落としが Web サイトにとって大きなセキュリティ リスクになる可能性があります。現在、Web 開発用のツールや言語は数多くありますが、PHP もその 1 つです。 PHP 言語自体には比類のないセキュリティ機能がありますが、大多数の Web サイト開発者の注目を集めていません。 Web サイトのセキュリティは、企業従業員の機密データのセキュリティを確保し、サーバー ハイジャックやその他の問題を効果的に防止することもできます。次の著者は、ユーザーに役立つことを期待して、PHP 開発を使用する際のいくつかの提案について説明します。

まず、最も重要なことは、さまざまな変数とユーザー入力データを明確にすることです。あなたが気づいていない多くの変数自体が、マルウェア プログラムが感染を広げる優れた手段となる可能性があります。 Web サイトにはあまり安全ではないコードがいくつかあると考えられますが、問題なく動作します。攻撃者がこれらの脆弱性を発見すると、Web サイト上で無制限に破壊的な活動を実行する可能性があります。これらの目立たない変数名を過小評価しないでください。これらの脆弱性がハッカーによって悪用されると、ファイルが削除されるだけでなく、パスワード システム全体やその他の機密情報も削除され、最終的にはサーバーの通常の動作に多大な損害を与える可能性があります。

ウェブサイト管理者は、外部からインポートされたすべてのファイルに悪意のあるコードが存在していないかチェックする必要があり、データベースのセキュリティも重要です。データベースのセキュリティには必然的に SQL インジェクションやその他の攻撃手法が多く含まれますが、ここでは詳しく説明しません。ユーザーがデータベースのセキュリティ情報を知りたい場合は、必要に応じて詳しく紹介します。

魔法の名言

Magic Quotesは、ユーザーファイル入力を処理するときに非常に便利です。このオプションが有効になっている場合 (php.ini ファイル内にあります)、ユーザー入力からすべての一重引用符と二重引用符、および NULL バイトが分離されます。 Magic Quote を有効にするときの質問の 1 つは、ユーザーに引用フィルタリングを実行させたいかどうかです。 Magic Quote をオフにすると、「ランタイム」でユーザー入力データの文字列を解析できます。

PHP に慣れていない場合は、ユーザーが入力したデータを分析して表現する方法を学ぶまで、この機能をオンにすることをお勧めします。個人的には、私が書いた「clear」関数を使用することをお勧めします。独自のクリーンアップ関数を作成できるように、テンプレートを提供します。

関数 clean($string)

$string = ストリップスラッシュ($string);

$string = htmlentities($string);

$string =strip_tags($string);

$string を返す;

}

?>

ユーザーがユーザー名の検証を必要とするフォームを送信している場合は、次の関数を使用できます:

$ユーザー名 = $_POST[ユーザー名];

エコークリーン($mystring);

?>

この Magic Quote では、実装するための命令が 3 つあります。 php.net Web サイトまたは php マニュアルを参照してください。これら 3 つの命令は基本的に magic_quotes_gpc であり、アクセス要求 (get、post、cookie) を処理するために使用されます。 magic_quotes_runtime は、ファイル、データベース、外部ファイルの処理に使用されます。 3 番目のタイプは、magic_quotes_sybase です。これがアクティブ化されると、magic_quotes_gpc は直接破棄されます。

曖昧さによる安全性

最近気づいていないかもしれませんが、いくつかの Web サイトで PHP 言語の ASP (Active Server Page 動的サーバー ホームページ) または PERL (GGI スクリプト言語) 拡張言語を見つけることができることがわかりました。これは 100% 確信できます。この Web サイトは PHP/SQL ベースのアーキテクチャを使用しています。これは典型的な難読化セキュリティ戦略であり、PHP スクリプトを使用していることをハッカーに伝えて、PERL、Python、またはその他のスクリプト言語を実行していると誤解させるのではありません。

たとえば、php 拡張機能を使用して、通常と同じように php スクリプトを実行できます。他の人に「hello.php」スクリプトを見られないようにするために、実際には Apache を使用して、実際のファイル拡張子を非表示または難読化しています。したがって、「hello.php」拡張子を使用する代わりに、これらのファイルを PERL として偽装しても、「hello.php」は PHP スクリプトのままになります。以下のように:

[quote]AddType application/x-httpd-php .asp .py .pl[/quote]

私のお気に入りは、.sun や .fuck などのファイル拡張子を作成することです

[quote]AddType application/x-httpd-php .sun .fuck .1e3t[/quote]

ハッカーが php を実行していると思われるファイルを見つけたときは間違いありません。 Sun ファイルは積極的に攻撃を開始するため、その結果は想像できます。試してみればわかります。上記のコードでは Apache 構成ファイルを使用しています。共有ホスト上にいる場合は、Apache 構成ファイルにアクセスできません。

グローバルを登録する

Global4.2バージョンの登場でPHPは大きく変わりました。これは、php.ini ファイルの INI ファイルのオンまたはオフのオプションです。このため、PHP は安全でない言語とみなされます。グローバル登録が有効な場合、リクエストでパラメータを設定できるようになります。その最たる例がユーザー登録フォームです。グローバル登録がオンになっていると仮定します:

if($authed = true) {

「私の機密情報」をエコー;

}

?>

どのユーザーも GET リクエストを送信することで機密情報にアクセスできます。 Telnet (リモート接続サービスの標準プロトコル、またはこのプロトコルを実装するソフトウェア) またはブラウザ (sin.php?authed=true など) を介してリモートでログインでき、機密情報が表示されます。これをオフにすると、この問題は回避され、sin.php?authed=true ページにアクセスすると、空白になります。ユーザーは外部ソースから変数を初期化できません。変数を外部ソースから保護するもう 1 つの方法は、変数が GET リクエストまたは POST リクエストを介して送信されたかどうかを確認することです。

GET リクエストまたは POST リクエストを監視することで、誰かが変数に何かを挿入したかどうかを確認できます。次に受け取るメッセージには、変数が破棄されたことが含まれるだけでなく、緊急措置を講じるために時間内に管理者に通知することもできます。

www.bkjia.com本当http://www.bkjia.com/PHPjc/364205.html技術記事 Web サイトの所有者または実務者として、私たちは Web サイトが安全に運営されることを願っていますが、多くの場合、Web サイト開発中の小さな見落としが Web サイトにとって大きなセキュリティ リスクになる可能性があります...

$authed = true

if(isset($_POST[認証]) || $_GET[認証]) {

echo "変数違反";

} 他 {

if($authed == true) {

「私の機密情報」をエコー;

}

}

?>

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles