0

私はwebdevの初心者です。データ検証なしで、サーバーのセキュリティがそのようなコードであることがどれほど危険であるかについて、いくつかの情報を取得しようとしています。

<form id="test" name="test" method="post" action="">
<input type="hidden" value="" name="tst">
<input type="reset" onclick="test.submit()" value="test">
</form>

HTMLコードやjsスクリプトを挿入できることは知っていますが、サーバー側にとって危険ですか?

4

3 に答える 3

2

フロントエンドフォームの実際の構造は、サーバー側のセキュリティに実際の違いはありません。それはすべて、データが渡された後、サーバーがデータをどのように処理しているかによって異なります。Firebug、Chrome Devツールなどを使用すると、すべてのユーザーがWebサイトでフォームを完全にゼロから作成、変更、および送信できます。またはpost/get、フォームを見ることなく変数を直接送信することもできます...フロントエンドの検証と構造は、アプリケーションにセキュリティを提供するのではなく、完全にユーザーを促して支援するためのものです。ユーザーから尊敬されているとは決して思わないでください。

また(脇に)、使ってみませんか

<input type="submit" value="test">

それ以外の

<input type="reset" onclick="test.submit()" value="test">

于 2013-02-28T16:41:42.133 に答える
1

ここから変更可能な項目はtstフィールドのみです。

原則として、フォーム内のすべてのフィールドはクライアントによって変更される可能性があるため(はい、非表示のフィールドも)、すべてのフィールドを(PHPまたは他のメソッドのmysqli :: real_escape_string()を介して)フィルタリングする必要があります。データベース、またはこのフィールドを使用してサーバー上の他のアイテムをinclude()する場合。条件に対してフィールドをスローするだけの場合(他の場所では使用されない場合)はフィルタリングする必要はありませんが、セキュリティを強化しても問題はありません。

HTML / JSの挿入については、他のスクリプトが送信されたHTMLを表示する場合にのみ適用されます。この場合、htmlspecialchars(_uni)を呼び出して、実行されないようにします。

于 2013-02-28T16:36:38.933 に答える
1

ユーザーは非表示の入力の値を簡単に編集できるため、サイトに簡単に損害を与える可能性があります。このフォームの機能に応じて、少なくともスラッシュとhtmlentityを追加する必要があります。もちろん、これはデータがサーバーに送信される場合にのみ重要です。

于 2013-02-28T16:38:19.450 に答える