問題タブ [html-escape]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
10428 参照

ruby-on-rails - Rails 3 で <%= note.html_safe %> と <%= h note.html_safe %> が同じ結果になるのはなぜですか?

何が起こっているのかを理解する必要がある String クラスに抽象化を追加するように感じhtml_safeます。たとえば、

4 行目で、文字列を信頼すると言っている場合、文字列は安全ですが、なぜエスケープできないのでしょうか? でエスケープするにhは、文字列が安全でない必要があるようです。

したがって、1 行目で、文字列が でエスケープされていない場合、h自動的にエスケープされます。5 行目でhは、文字列を 2 回エスケープすることはできません。つまり、<が に変更された後&lt;、 にもう一度エスケープすることはできません&amp;lt;

それで、何が起こっているのですか?html_safe最初は、文字列にフラグを付けて、安全だと言っているだけだと思っていました。では、なぜそれをh回避しないのでしょうか。hフラグの使用にhtml_escape実際に協力しているようです:

1) 文字列が html_safe の場合、hエスケープしません

2) 文字列が html_safe でない場合、文字列が出力バッファに追加されると、 によって自動的にエスケープされhます。

3)hすでに文字列をエスケープしている場合は とマークされhtml_safeているため、もう一度エスケープしてhも効果はありません。(5行目と同じように、その動作はRails 2.3.10でも同じですが、Rails 2.3.5hでは実際に2回エスケープできます...したがって、Rails 2.3.5ではh単純なエスケープ方法ですが、どこかで2.3.10 への行はそれほどh単純ではなくなりました.しかし、2.3.10 は文字列を自動エスケープしませんが、何らかの理由で、メソッドhtml_safeは 2.3.10 用に既に存在します (何の目的で?))

それはまさにそれがどのように機能するのですか?最近では、出力に必要なものが得られず、すぐにhtml_safe変数に追加することがあると思いますが、これは非常に危険な場合があります。XSS 攻撃がそのように導入される可能性があるため、正確にどのように機能するかを理解することが非常に重要になる可能性があります。上記は、正確にどのように機能するかの推測にすぎません。それは実際には別のメカニズムである可能性があり、それをサポートするドキュメントはありますか?

0 投票する
3 に答える
889 参照

ruby-on-rails - ruby on rails のデータ移行で html エスケープを元に戻す

私はデータベースを持っていますが、現在、その中のアイテムの多くは html エスケープされています。これを元に戻す必要があり (理由は聞かないでください!)、そのためにデータ移行を実行します。

しかし、これらの文字列をエスケープ解除する方法はありますか? 私は何も見つけることができませんでした..

0 投票する
2 に答える
4352 参照

ruby-on-rails-3 - erbタグのHTMLコードをエスケープしないようにする方法

Rails プロジェクトのビューの 1 つにいくつかの単純な erb コードがあります。

<%= comment.body %>

フォーマット情報があるため、comment.body の html タグを保持したいと思います。テキストがデータベースに適切に保存されていることを確認しました

<b>hello</b>

しかし、私が期待するように、ページ上でこんにちは<b>hello</b>ではないことが判明しました。

これはどうやってできるの?私は<%= hhtmlコードをエスケープするために使用していません。

逃げないようにするにはどうすればいいですか?私は Rails 3 を使用しています。これは問題ですか?

0 投票する
1 に答える
440 参照

ruby-on-rails - Rails 3.1 にアップグレードした後、html_escape が壊れているようです

80beans のオランダ人による WYSIWYG エディター「wysihat-engine」を使用するプロジェクトがあります。以前は Rails バージョン 3.0.9 で正常に動作していましたが、3.1.0 にアップグレードした後、wysihat-engine は ERB::Util (ActiveSupport 3.1.0) から 'html_escape' を見つけることができず、次のエラー メッセージが表示されます。

'wysihat-engine.rb' 内で 'html_escape' を定義することにより、(確かに非常に不自由に) 修正しましたが、この方法で実行しない理由があると確信しています :)。

私の質問: 1. これは Rails の新しいバージョンのバグですか? 2. Rails 3.1 プロジェクト用の WYSIWYG エディターのより良い選択肢はありますか?

前もって感謝します 。

0 投票する
2 に答える
10933 参照

underscore.js - _.escape が Underscore.js の / 文字を変更するのはなぜですか?

Underscore.js apiを調べていたところ、、、、、、、および文字が_.escapeエスケープ&<>ていることに気付きました。驚いたのは逃げること。"'//

/知らない文字をエスケープする理由はありますか?

0 投票する
3 に答える
4161 参照

ruby-on-rails - Rails: セパレーターに html を含む array.join はエスケープされます

保存されていないコンテンツ (ユーザー入力) を含む文字列の配列があります。

で区切られたこれらの文字列をテンプレートに結合したいと思い<br />ます。

私は試した:

しかし、これもスパレーターを逃れます。

配列の内容を絶対にエスケープする必要があることを念頭に置いて、回避策はありますか?

0 投票する
3 に答える
31301 参照

jsf - 実際の HTML ではなく HTML をそのまま印刷する

私はJSF 1.2を使用しています

を使用してテキストを印刷しようとしています<h:outputtext>

現在、この変数には html タグ付きのテキストが含まれています。<b>など<i>...

ただし、実際の太字または斜体の html 出力ではなく、コンテンツをそのまま表示します。

<h:outputText>HTML応答を返すようにする方法はありますか?

0 投票する
1 に答える
5842 参照

json - Node.js - HTML エスケープを JSON データ、サーバー側、またはクライアント側に行うのはいつですか?

Node.js と Underscore.js を使用しています。サーバー側とクライアント側のどちらで JSON データをエスケープするかを判断できません。アンダースコアは、構文では補間された値を自動エスケープしません<%= someValue %><%- someValue %>、EJS とは対照的であり、混乱を引き起こす可能性があります。GitHub に問題があり、自動エスケープ バージョンのコミットもありました。しかし、問題の下のコメントは次のように述べています。

私は、エスケープはテンプレート言語よりもデータの近くで行うべきであるという一般的な哲学を持っています

では、AJAX データへの HTML エスケープをいつ行うのがよいかという提案はありますか? 私が使用しているサーバー側のヘルパー関数は次のとおりです。

次に、JSON を返すたびに呼び出します。

0 投票する
2 に答える
2844 参照

java - HTMLエスケープ文字をJSPからJavaにエスケープ解除するにはどうすればよいですか

私はHTMLエスケープを行うためにJSPfn:escapeXmlの入力値(たとえば)に適用しています。>フォームを送信するとき、パラメーターをコントローラーに送信する必要があります。私のコントローラーでは、リクエストパラメーターはとして&gtではなくとして来ます&gt;。このため、元の値を取得するためにコントローラーでエスケープを解除できませんでした。誰かがこれを手伝ってもらえますか?

0 投票する
3 に答える
17032 参照

c++ - QString を html エスケープするにはどうすればよいですか

HTML を含む QString をエスケープ/サニタイズするにはどうすればよいですか?

いえshowInBroswser(escaped(str)) == showInNotepad(str);