ユーザーはフォームを変更でき、クロスサイトスクリプティング(XSS)から保護する必要があります。ユーザーが入力にHTMLを入力したとき
XSS
XSSです。たとえば、ユーザーがこの値を送信した場合はどうなりますか?:
" /><script type="text/javascript" src="http://example.com/malice.js"></script><input value="
これがそうのようなフォームに書き込むことになります。
<input type="hidden" name="prova[]" value="" /><script type="text/javascript" src="http://example.com/malice.js"></script><input value=""/>
これに対して保護するための最善の方法は、あなたの入力を確保するためにhtmlspecialchars()
を使用することです。これにより、<
などの文字が<
にエンコードされます。たとえば:
<input type="hidden" name="prova[]" value="<?php echo htmlspecialchars($array); ?>"/>
あなたはここにXSS詳細を読むことができます:https://www.owasp.org/index.php/XSS
フォーム修正
私はあなたのサイトにあった場合、私はHTMLを修正するChromeの開発ツールやFirebugのを使用することができますがあなたのページのあなたのフォームが何をしているかに応じて、これは悪意を持って使用される可能性があります。
たとえば、配列に余分な値を追加したり、配列に属していない値を追加したりできます。これがファイルシステムマネージャーだった場合は、存在しないファイルや機密情報を含むファイルを追加することができます(例:myfile.jpg
を../index.php
または../db-connect.php
に置き換えます)。
要するに、後で入力をチェックして意味があることを確認し、フォームに安全な入力のみを使用する必要があります。数値が存在するかどうかを確認してデータベースからファイル名を抽出できるので、ファイルID(数字)は安全です(これはデータベースに検証済みの入力が含まれていることを前提としています)。ファイルは上記の理由から安全ではありません。ファイル名を再検証する必要があります。そうしなければ、何かに変更することができます。
クライアントとサーバーの間で構造化データを頻繁に送信している場合は、JSONに直列化してください。 –
POST経由で配列を渡すことについては、本質的に安全ではないと思いますか?それは単なるデータです。 –
私は通常、 'json_encode()'のものを好きです。その後、json_decode()をtrueに設定して、それを取り戻します。 – phpisuber01