私はSQLインジェクション、XSS、その他のセキュリティ上の問題について読んだことがあり、会社のサイトを保護するために何を使用するかを検討しようとしています。おそらく危険なテキスト入力処理
私たちは、ユーザーエクスペリエンスを高めるためにサイトを改善する方法をユーザーに教えることができるように、簡単な「ユーザーフィードバック」フォームをテキストエリアに展開しようとしています。
ユーザーがフォーム上で「送信」を押すと、ユーザーからテキストエリアのコメントを読み取り、そのユーザーのサブフォルダにファイル名をプログラムで作成し、そのコメントをファイルに保存します。次に、そのユーザーのデータベースレコードにファイル名とパスを追加します。
チームはセキュリティ上の問題を心配していませんが、私はそうです。私たちはファイル名を作成します。ユーザー入力に基づいて0%です。このUserX commentsファイル名とデータベースへのパスをユーザーに直接与えることなく、リスクはありません。
私の関心事はデータベースの活動ではないということです。彼らが正しいので、私たちは私たち自身のファイル名を作成してdbレコードに格納するので、データベースレコードに何を書き込むのかには何の役割もありません。
私の心配はテキストファイルです!
私は小規模なチームにセキュリティを使用してコードを書き換えて、テキストエリアのユーザーのコメントをテキストファイルに書き込むよう訴えています。
私の関心事は、実際にユーザーのフィードバックを読んで、これらのテキストファイルを開いて後で読むことを予定しているからです。テキストエリアに悪いものがあるかもしれません。
私はstrip_tags()を使用することを主張していますが、テキストエリアの入力を害する方法についての情報を聞く必要があります。strip_tags()はここに行く方法ですが、新しいユーザー入力を嫌う私はhtmlspecialchars()を見ただけで、 '&'のような特定の文字を& などに変換します。
ウェブサーバー上のファイルに書き込む前に、ユーザーがテキストエリアに入力するテキストを他の方法で確認/安全にする方法はありますか?
'htmlspecialchars'は' <' and '> 'を' < 'と' > 'に変換します。これは、任意のhtmlが使用入力から表示されないようにするのに十分です。 – kirilloid
私はこれが質問に答えると思います:なぜあなたはデータベースではなくテキストファイルにこれらを保存していますか? –
AM - 良い質問 - これは100%の新機能なので、どのくらい使用するのかわからないので、セキュリティ問題などを処理するためのコードとデータベースの改造は追加していませんが、それはサイトのあまり頻繁に使用されていない機能であることが判明し、データベースに格納する方がより良いかもしれません。 – wantTheBest