3

開発者のコ​​ードを見ていました。彼は、私がこれまで Python アプリケーションで見たことのないことをしました。彼のバックグラウンドは PHP で、Python を学んでいるところです。そのため、これが彼が使い慣れたさまざまなシステム アーキテクチャの影響なのかどうかはわかりません。

彼は、このコードの目的は、ユーザーがコード挿入によってアプリケーションを攻撃するのを防ぐことだと言いました。データをコードとして評価することは決してないため、これは私たちのユースケースには不要であると確信していますが、確認してコミュニティに尋ねたかっただけです.

# Import library
from cgi import escape

# Get information that the client submitted
fname   = GET_request.get('fname',   [''] )[0]

# Make sure client did not submit malicious code <- IS THIS NECESSARY?
if fname:
    fname = escape(fname)
  • これは通常、Python アプリケーションで必要ですか?
  • どのような状況で必要ですか?
  • 必要ないのはどのような場合ですか?
4

1 に答える 1

7

ユーザー入力がデータベースまたはその他の場所で実行される場合、コード インジェクションが問題になる可能性があります。

この質問では、php でのコード インジェクションを防ぐ方法について質問していますが、原則は同じです。悪意のあるコードを含む SQL クエリが実行され、すべてのデータを削除するなどの可能性があります。

エスケープ関数は、<、>、および & 文字を HTML セーフ シーケンスに変換します。

これらの 2 つのリンクから、escape() だけでは十分ではないように見えますが、悪意のあるコードを阻止するために何かを行う必要があります。もちろん、これはコードの他の場所で処理されている可能性があります。

于 2012-12-05T17:33:09.780 に答える