-1
問題があります。私はフォームの安全性を考えました。私はテキストエリアであるフィールドを持っています。デフォルトでは非表示になっており、リッチテキストエディタが表示されます(CKEditorが役割を果たす場合)。私がしたいことは:HTMLで入力したテキストエリアの安全対策(PHPで処理され、コンテンツはHTMLでなければなりません)(div pと他のタグ付き)
- 私はビデオのチュートリアルを投稿している人がいるかもしれないので、iframeは許可しますが、私は他のおそらく有害な情報源からのiframeを望んでいません。
- 私はイメージを許可しません(これらの要素にもセキュリティホールがあります)。
- 私が最後にかつて心配していたのは、豊富なコンテンツを持つフィールドであるため、SQLインジェクションを防ぐ方法です。
宿題:
- 私は(。例えば$ fake_input = $ actual_input)VARの作成について考えました。その後、iframeとyoutubeのリンクが$ actual_inputにpreg_match_allで表示されます。次に、すべてのiframeから$ fake_inputを削除し、YouTubeのリンクを数えます。だから、ストリッピングした後、次のイコライゼーションが有効でなければなりません。それ以外の場合は別のソースからiframeがあります。 $ fake_youtube_links = $ actual_youtube_links - $だから、 をactual_iframes、我々はユーチューブはiframeのうち、リンク、1つの悪質なIFRAMEと、通常の(YouTubeの1)は、それが1 = 1である必要がありiFrameに持っていると言うことができます - 真されていない、2、そのエラー表示されます。
- 私は、写真からpreg_replaceを使うことを考えました。
- 最後の部分は、これが私が考えた戦略です。ステップ1と同じように$ fake_inputを作成します。コードサンプルを削除します(これは、説明目的のみのものです)。そして、DELETE、ALTER、TRUNCATEなどのMySQL予約語/入力の残りの部分をチェックするためにサンプルをクリーニングした後。
何か助けになるでしょう!
私は(その機能何)それを見て、エンティティをHTMLにいくつかの「危険な」文字を変換します。私が "ばかげた"質問をするのは申し訳ありませんが、これはSQLインジェクションに対して十分でしょうか?たとえそうであっても、他にどんな危険を冒すべきですか? –
SQLインジェクションを避けるために、準備されたステートメントを使用してください。それ以外の場合は、htmlspecialchars()またはhtmlentities()を使用して任意のhtmlをエンコードする必要があります。 – Andreas