web-dev-qa-db-ja.com

「無害化」とはどういう意味ですか(APIドキュメント)

こんにちはDrupal APIのドキュメントで「サニタイズ」という言葉をよく目にします。

たとえば、このページ: theme_username($ variables)

$ variables以下を含む連想配列:

account:フォーマットするユーザーオブジェクト。

name:ユーザーの名前、sanitized

extra:ユーザーの名前に追加する追加のテキストsanitized

sanitizedはどういう意味ですか?

5
gilzero

「サニタイズ」とは フォーム送信などのユーザー入力からの悪意のあるデータの削除 またはもっと簡単に...

コードの競合(IDの重複など)、セキュリティの問題(xssコードなど)、または標準化されていない入力と人為的なエラー/逸脱から生じる可能性のあるその他の問題を回避するためのユーザー入力のクリーンアップ。

コンテキストに応じて、サニタイズにはいくつかの異なる形式があります。 SQLインジェクションの試みやその他の悪意のあるコードの侵入の試みを取り除くために、テキストから下品なものや奇妙な記号を取り除くのと同じくらい簡単かもしれません。

drupalコアに一般化されているサニタイズの概念は、以下を参照することで理解できます。 http://api.drupal.org/api/drupal/includes--common.inc/group/sanitization/7

たとえば、 check_plain() 関数は次のようになります。

HTMLとして表示するために、プレーンテキスト文字列の特殊文字をエンコードします。

また、文字列をUTF-8として検証し、Internet Explorer 6へのクロスサイトスクリプティング攻撃を防ぎます。

または filter_xss() これは:

HTML文字列をフィルタリングして、クロスサイトスクリプティング(XSS)の脆弱性を防ぎます。

8
electblake

Drupal入力処理の重要なアイデアは、anyデータがユーザーから受け入れられることですが、画面に(またはデータベースクエリで使用して)「サニタイズされた」データのみ-損傷を与えず、XSSおよび関連する機会などを提供しません。

上記の優れた答えを理解するには、その戦略を確実に理解する必要があります。優れた小さな本「Cracking Drupal」または http://crackingdrupal.com/ のリソースに興味があるかもしれません。

3
rfay

ここでの2つの意味は、1つは&または 'などの文字を適切にエンコードすること、もう1つは コードインジェクション を防止することです。

2
tim.plunkett

「サニタイズ」とは、フォーム送信などのユーザー入力から悪意のあるデータを削除することです

0
tijo