2017-07-14 7 views
2

テキストエディタを作成したいのですが、記事をデータベースに保存する方法をテキストの編集が終了したら問題があります。 HTMLコードで保存するか、HTMLタグを特殊記号、例えば<br>タグから[br]<span>text</span>から[span]text[/span]に変換しますか?あなたは、HTMLなどのような特殊文字のエスケープのみ値を格納する必要がデータベースでテキストエディタからデータベースに記事を保存する最善の方法

どうもありがとう:)

+3

単純な置換はどちらの方法にも何の違いもありません。それが表示される前に、文字を転置するステップを追加するだけです。ユーザーが生成したHTMLをサイトに保存、取得、表示することを許可している場合は、XSSを許可することにもっと関心があります。 –

+0

すべての記事は動的で内容が異なりますので、HTMLタグをそのまま使用し、セキュリティ目的で注入してください。 –

+0

なぜmarkdownを使用せず、生のマークダウンソースを保存し、そのHTMLをオンザフライでレンダリングするのはなぜですか?ストレージとXSSの基本的な問題を本質的に解決します。 –

答えて

0

を。

使用mysqli_real_escape_stringあなたが使用できる多くの方法があります

urlencode/urldecodehtmlspecialcharsなどが。

0

HTMLを表示したくない場合を除き、シンボルを置き換える理由はありません。そうであれば、HTML Entitiesを使用することもできます。これらは、ブラウザによってHTMLとしてレンダリングされず、テキストをデータベースに保存されます。

どこかに読み込まれたときにHTMLをレンダリングしたい場合は、シンボルをHTML Entitiesに置き換える必要はありません。

ただし、ユーザがコンテンツを入力できるようにする場合は、入力するテキストを保存する前に、可能な限りscripting attacksの入力を行ってください。

0

これは本当にあなたがそれをどうしたいかによって異なります。少なくとも、あなたはあなたが「誰も信じない...誰でも...」というルールに従っていることを確認したいと考えています。

データベースに挿入する前にデータをサニタイズしていることを確認してください。

HTML(マークアップ)からマークダウンに変換できるライブラリが数多くあります。

https://github.com/netgusto/upndown < - javascriptの

https://github.com/Elephant418/Markdownify < - PHP

IMOそれは本当に問題であなたがいる限り、それは標準フォーマットであるとして、それを保存するどのような形式doesntの。 HTML、Markdownなどは、何年にもわたって非常にresilliantであることが試され、テストされてきました。いくつかの点で

https://en.wikipedia.org/wiki/List_of_document_markup_languages

、あなたのエディタが作成され、これまで何として保存することは、おそらくあなたは、単に戻って途中でそれを再変換する必要がありますよう何か他のものに変換しようとしているのと同じくらい簡単です;-)

データベースに追加する前に自分のものをSANITIZEすることを忘れないでください。データベースを破棄したり、データを破壊したり、悪化させたりする悪意のある攻撃まで自分自身を開きます。

関連する問題