2016-04-13 20 views
0

私は初心者であり、開発者がクライアント用に作成したコードにトリム関数をどこに置くべきかわかりません。現在のフォームはアポストロフィの前に "\"を置き、私は解決策を見つけてファイルに関数を配置しようとしましたが、私が行うすべてがクライアントのフォームを破ります。どんな助けもありがとうございます。適切なトリム関数

$dd_description = $_POST['dd_description']; 

と、フォームの確認ページは次のとおりです:

現在の構造である私はちょうど

+0

正確にはわかりませんが、 '\ 'を削除するには' str_replace(' \ '、' '、$ dd_description) 'のようなものを試すことができます。出力をエスケープする関数を通過したように聞こえます。 XSSの脆弱性につながる可能性があるので、あなたのページへのユーザー入力を直接印刷しないように、それらを削除する方法は慎重にするべきでしょう。 – Mikey

+0

これはクライアントのために別の人が開発したものです。私は今、私の頭より少し上の役割を果たしていますが、あなたが脆弱性を持っているかどうかを調べるためにこれを調べます。ありがとうございました! –

答えて

0

セキュリティ上の理由から、解析されていないPOST変数をユーザーのWebページに表示させるだけではお勧めできません。

コードにstripslashes()を追加しましたか?

Description:<strong> '. stripslashes($dd_description) .'</strong><br /> 

入力データをさらに保護することをお勧めします。おそらく、少なくともstrip_tagsも囲みます。

+0

ありがとうございます。再び、とてもシンプルです。私はグローバルstriplashes関数を試していましたが、うまく機能しませんでした。これを追加するフィールドがあまりにも多くなく、うまく動作します。私はそれが単純な修正でなければならないことを知っていましたが、私はまだ微妙な変更には新しく、不要な引用符と括弧で過度に複雑にしていました。 –

+0

さて、このようなことを行う価値があるかもしれません。 [foreach($ _ POST as $ key => $ val){ $ _POST [($ key)] = stripslashes($ val); } [/ code] – RefreshCarts

+0

これまでに試してみましたが、動作しませんでした。私はたぶん正しい場所に機能を配置していない可能性があります。 "推奨されない"コメントに関しては、私はこのフォームがクライアント用に開発者によって作成されたことを知っています。私は今、引き継ぎますが、適格者ではありません。私は確かにそれが最初に構築された方法に問題の種類がないことを確認するためにこれを調べます。これは、裏側のfunctions.phpファイルを通してすべて起こっています。 –

0

自動エスケープアポストロフィ「トリム」をどこに配置することができないよう

Description:<strong> '. $dd_description .'</strong><br /> 

Magic Quotesがオンであることを示しています。 Here's how to disable Magic Quotes

マジッククォートがSQLインジェクションからSQLクエリを保護している可能性がありますので、それが有効な理由について適切な調査が必要です。このような場合は、コードをSQLインジェクションの文字列処理を必要としないプリペアドステートメントに変換することをお勧めします。

関連する問題