PHPの一般的なセキュリティ上の問題と解決策

1、SQLインジェクション

他のSQLインジェクション攻撃によってデータベースが、他の人があなたのデータベースを消し、そしておそらくもっと深刻な結果ことができれば、SQLインジェクションは、あなたのサイトへの最大の脅威の一つです。

ソリューション:

二つの主要なソリューションがあります。ユーザ入力データまたはステートメントを使用してパッケージ脱出。パッケージをエスケープする方法が良いの関数である、不要なタグを削除するには、ユーザーによって提出されたデータをフィルタリングするために使用されます。しかし、私はこの取引を行うためにあらゆる場所でそれを忘れるために、より簡単で、この方法を使用することはお勧めしません。

以下は、私は、パッケージの文(mysqi、あまりにも)を実行するためにPDOを使用する方法について説明します:

1

2

3

4

5

6

7

$username = $_GET['username'];

  

$query = $pdo->prepare('SELECT * FROM users WHERE username = :username');

  

$query->execute(['username' => $username]);

  

$data = $query->fetch();

2、XSS

また、CSS(クロスサイトスクリプト)として知られているXSS、クロスサイトスクリプティング攻撃。これは、ユーザーがページを閲覧する際に、htmlコードに悪意のあるWebページを挿入するには、悪意のある攻撃者を指し、HTMLコード内に埋め込まれたWebは、悪意のあるユーザーの特定の目的を達成するために実行されます。

ソリューション:

入力中のすべての特殊文字から任意のユーザからの入力、およびフィルタを信じていないと判断。これは、XSS攻撃のほとんどを除去することができます:

1

2

3

<?php

  

$searchQuery = htmlentities($searchQuery, ENT_QUOTES);

それとも、テンプレートエンジンを使用することができ、小枝、一般的なテンプレートエンジンは、出力プラスにhtmlentities防止をデフォルトとします。

3、XSRF / CSRF

CSRF CSRFの略称であり、サイトを訪問し、いくつかの操作を実行するために認定されたら、ユーザーをだましするための多くの技術によって、攻撃者です。

ソリューション:

最も一般的な方法は、一般的に、トークンと呼ばれる防衛CSRF暗号化されたセキュリティトークン文字列を生成するためのものであり、トークンやクッキーはセッションに保存されています。

Webページでフォームを構築するたびに、トークントークンは、フォームで隠しフィールドに配置されますが、フォームがトークントークン比較して、ユーザーのクッキーやセッションに基づいて行われます、検証が唯一のサーバによる要求の後与えることに成功します。

攻撃者は、トークントークンの内容(各フォームトークントークンがランダムである)を知ることができないので、ユーザになりすますことができないからです。

おすすめ

転載: www.cnblogs.com/heyue0117/p/11827687.html