安全性の高いPHP Webサイトの作り方、Webサイト作成時に注意すべきセキュリティ問題まとめ

伊谢尔伦
リリース: 2023-03-11 22:54:02
オリジナル
1840 人が閲覧しました

PHP が現在最も人気のある Web アプリケーション プログラミング言語であることは誰もが知っています。しかし、他のスクリプト言語と同様に、PHP にもいくつかの危険なセキュリティ ホールがあります。したがって、このチュートリアルでは、一般的な PHP セキュリティ問題を回避するのに役立ついくつかの実践的なヒントを見ていきます。

ヒント 1: 適切なエラー レポートを使用する

一般に、開発プロセス中、多くのプログラマはプログラム エラー レポートを作成することを常に忘れます。これは大きな間違いです。なぜなら、適切なエラー レポートが最善であるだけでなく、デバッグ ツールも最適であるからです。優れたセキュリティ脆弱性検出ツールで、アプリケーションをオンラインにする前に、発生する可能性のある問題を可能な限り見つけ出すことができます。
もちろん、エラー報告を有効にする方法はたくさんあります。たとえば、php.in 設定ファイルでは、

実行時にエラーレポートを開始
error_reporting(E_ALL);

エラーレポートを無効にする
error_reporting(0);

を有効に設定できます。

ヒント 2: PHP の Weak 属性を使用しないでください

OFF に設定する必要がある PHP 属性がいくつかあります。通常、これらは PHP4 に存在しますが、PHP5 では使用は推奨されません。特に PHP6 では、これらの属性が削除されました。

グローバル変数を登録する
register_globals が ON に設定されている場合、環境、GET、POST、COOKIE、またはサーバー変数をグローバル変数として定義する設定と同じになります。現時点では、フォーム変数「username」を取得するために $_POST['username'] を記述する必要はありません。この変数を取得するには、「$username」だけが必要です。
それでは、 register_globals を ON に設定すると、こんなに便利なメリットがあるのだから、それを使用しないのではないかと考えているはずです。これを行うと多くのセキュリティ上の問題が発生し、ローカル変数名と競合する可能性があるためです。
たとえば、次のコードを見てください:

if( !empty( $_POST[‘username'] ) && $_POST[‘username'] == ‘test123′ && !empty( $_POST[‘password'] ) && $_POST[‘password'] == “pass123″ )
{
$access = true;
}
ログイン後にコピー

操作中に register_globals が ON に設定されている場合、ユーザーはクエリ文字列で access=1 を送信するだけで、PHP スクリプトによって実行されるものを取得できます。
.htaccess のグローバル変数を無効にする

php_flag register_globals 0
ログイン後にコピー

php.ini のグローバル変数を無効にする

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

magic_quotes_gpc、magic_quotes_runtime、magic_quotes_sybase などの魔法の引用符を無効にする
りー

ini のヒント 3: ユーザー入力を検証する

もちろん、ユーザー入力を検証することもできます。まず、ユーザーが入力すると予想されるデータ型を知っておく必要があります。このようにして、ユーザーによる悪意のある攻撃をブラウザ側で防ぐことができます。

ヒント 4: ユーザーによるクロスサイト スクリプティング攻撃を回避する

Web アプリケーションでは、フォームでユーザー入力を受け入れ、結果をフィードバックするのは簡単です。ユーザー入力を受け入れる場合、HTML 形式の入力を許可すると、JavaScript が予期しない方法で侵入して直接実行される可能性があるため、非常に危険です。このような脆弱性が 1 つでもあると、Cookie データが盗まれ、ユーザーのアカウントが盗まれる可能性があります。

ヒント 5: SQL インジェクション攻撃を防ぐ

PHP は基本的にデータベースを保護するツールを提供していないため、データベースに接続

するときは、次の

mysqli_real_escape_string 関数を使用できます。 りー

以上が安全性の高いPHP Webサイトの作り方、Webサイト作成時に注意すべきセキュリティ問題まとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート