2

私は、在庫管理、コンテンツ管理、およびブログを含む適切な管理インターフェイスを作成しました。今こそ、それをロックダウンして安全にする時です (はい、最初からそうするべきでした...

ブログの作成/編集には、HTML 出力を editblog.php に投稿する ckeditor を使用しています。また、タイトル、作成者などに単純なテキスト入力を使用しています...

ブログには img src="uploads/etc.jpg" や div、span などがあるので心配です...

それで!このデータをサニタイズするとき、これらすべての引用符とスラッシュを SQL データベースに安全に押し込めるようにするにはどうすればよいでしょうか。また、ブロガーが何かを「引用」したとしても、それを台無しにしたくないので心配です。

タイトル、著者などの単純な入力 $title = mysqli_real_escape_string($title) を使用しています しかし、それで十分ですか? 攻撃を回避しながらユーザーの意図した入力を保持するにはどうすればよいですか?

私は自分の研究をしましたが、まだそれを理解していません。誰かがそれを私にとって素晴らしくシンプルに分解できることを願っています...

4

1 に答える 1

1

素敵でシンプル...

書き込み先のコンテキストに対して常にサニタイズします。

これらの手法は、ユーザーの入力を保持しますが、その入力が特定のコンテキスト内のコードとして解釈されるのを防ぎます。

データベースにクエリを実行する場合、SQL インジェクション攻撃が心配です。

  • mysql_real_escape_string を使用して、データベース クエリの SQL をサニタイズします。

ブラウザによって解析される何かを (HTML として) 表示したい場合、クロスサイト スクリプティングが心配になります。

  • HTML 出力のサニタイズには htmlspecialchars を使用します。

これにより、基本レベルのセキュリティが提供されます。

  • データベース側のセキュリティを強化するには、準備済みステートメントと PHP PDOを確認する必要があります。
  • htmlspecialchars のいくつかの落とし穴の詳細については、@Cheekysoft の優れた説明をご覧ください: htmlspecialchars および mysql_real_escape_string
于 2012-11-07T23:15:25.760 に答える