私は、JavaScriptベースのリッチテキストエディタを持っています。リッチテキスト(WYSIWYG出力)を保存する最も良い方法は何ですか?
生成するタグを保存する最も安全な方法は何ですか?
私は自分のデータベースとしてMySQLを使用しています。
mysql_real_escape_string($text);
を使用するのが安全かどうかはわかりません。
私は、JavaScriptベースのリッチテキストエディタを持っています。リッチテキスト(WYSIWYG出力)を保存する最も良い方法は何ですか?
生成するタグを保存する最も安全な方法は何ですか?
私は自分のデータベースとしてMySQLを使用しています。
mysql_real_escape_string($text);
を使用するのが安全かどうかはわかりません。
ここではhtmlentities
を使用する理由は考えられません。 mysql_real_escape_string
は、人々が';DROP * FROM table foo;--
のような悪質なSQLコードをデータベースに注入するのを防ぐため、ここで重要です。私はhtmlentities
なしでそれを試してみると、エンティティに変換する必要がある場合は、代わりにhtmlspecialchars
を試してみてください。
フォームに許可されるHTMLを制限する場合は、strip_tags
の機能を調べることもできます。
関連ドキュメント:データベース内
http://us2.php.net/manual/en/function.htmlentities.php
http://us2.php.net/manual/en/function.htmlspecialchars.php
幸運
データベースとのインターフェイスにはmysqli
を使用することをお勧めします。データをエスケープしてSQLインジェクションを完全に保護する必要はありません。もちろん、HTMLインジェクションから保護する必要があります。
JavaScriptファイルにテキスト文字列を書く必要はありません。 JavaScriptで処理する必要がある場合は、XMLHttpRequestを使用してデータを取得することをお勧めします(これは、名前が示すとおり、データがXML形式である必要はありません)。
には[PDO](http://php.net/manual/en/book.pdo.php)を使用してください。 [このスレッドを参照してください](@stackoverflow.com/questions/13569/mysqli-or-pdo-what-are-the-pros-and-cons) –
@DaanTimmerこれは別の方法です。 – aaaaaaaaaaaa
HTMLを傷つけるつもりはありません。適切な設計がなされていないアプリケーションを作成するときに問題が発生します。コンテンツをHTMLとして表示する必要がある場合は、エスケープしないでください。それ以外の場合は、データベースに挿入する前にエスケープしてください。 –
'markdown'を見ると、それは質問とコメントのためにSO上で使われる方法です。私はHTMLよりも(ユーザーのために)作業するほうがはるかに簡単で、HTMLと出力の検証では問題が少ないことが分かりました。 DBにマークダウンを格納し、出力時に有効なHTMLに変換します。 – Jakub
@RobW私はいつも、挿入されているデータを変更し、データベースから出てくるデータだけを変更するように言わなかったのですか? –