2012-04-11 23 views
2

私は、JavaScriptベースのリッチテキストエディタを持っています。リッチテキスト(WYSIWYG出力)を保存する最も良い方法は何ですか?

生成するタグを保存する最も安全な方法は何ですか?

私は自分のデータベースとしてMySQLを使用しています。

mysql_real_escape_string($text);を使用するのが安全かどうかはわかりません。

+0

HTMLを傷つけるつもりはありません。適切な設計がなされていないアプリケーションを作成するときに問題が発生します。コンテンツをHTMLとして表示する必要がある場合は、エスケープしないでください。それ以外の場合は、データベースに挿入する前にエスケープしてください。 –

+2

'markdown'を見ると、それは質問とコメントのためにSO上で使われる方法です。私はHTMLよりも(ユーザーのために)作業するほうがはるかに簡単で、HTMLと出力の検証では問題が少ないことが分かりました。 DBにマークダウンを格納し、出力時に有効なHTMLに変換します。 – Jakub

+0

@RobW私はいつも、挿入されているデータを変更し、データベースから出てくるデータだけを変更するように言わなかったのですか? –

答えて

0

ここでは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

幸運

0

データベースとのインターフェイスにはmysqliを使用することをお勧めします。データをエスケープしてSQLインジェクションを完全に保護する必要はありません。もちろん、HTMLインジェクションから保護する必要があります。

JavaScriptファイルにテキスト文字列を書く必要はありません。 JavaScriptで処理する必要がある場合は、XMLHttpRequestを使用してデータを取得することをお勧めします(これは、名前が示すとおり、データがXML形式である必要はありません)。

+1

には[PDO](http://php.net/manual/en/book.pdo.php)を使用してください。 [このスレッドを参照してください](@stackoverflow.com/questions/13569/mysqli-or-pdo-what-are-the-pros-and-cons) –

+0

@DaanTimmerこれは別の方法です。 – aaaaaaaaaaaa

関連する問題