問題タブ [htmlspecialchars]

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 に答える
512 参照

php - htmlspecialchars はフォーマットを削除します

クラスの別の関数内で htmlspecialchars 関数を呼び出していますが、これを行うと、データが表示されても、データを 1 行で表示するすべての書式設定が削除されます。

これはコードです:

htmlspecialchars 関数への参照を削除すると、データが表示されます。

アップデート:

これは私が適用したcssです:

$row['cQuotes'] および Author 変数内に html はありません。htmlspecialchars が実装されたときに削除されるのは css フォーマットです。

私が気付いた別のことは、私が削除した場合ENT_QUOTES、それは機能しますが、再びそれを使用すると、フォーマットが削除されるということです。これはなぜですか?

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

php - PHP を使用して HTML コードをプレーン テキストで出力するようにフォーマットする

データベースからユーザーが送信した HTML コードを取得する次の関数があります。

のように呼びますecho code($query->row('html'));。私の質問には「深さ」が欠けていることはわかっていますが、これが最善の方法ですか? または、出力されたフォーマットが解析されたり (Javascript インジェクションなど)、一部のマシンで正しく出力されなかったりする可能性はありますか?

ありがとう!

ジャック

編集: 新しい (関連する) 質問があります: を使用して文字列を強調表示したいと思いますhighlight_string()。しかし、私はそれを適切に機能させることはできません。理由は理解できたと思いますが、これを修正する方法がよくわかりません。

ご覧のとおり、私はhighlight_string()それをすべて使用しています。ただし、出力はまったく強調表示されず、代わりに文字エンティティ ( <、「>」など) として出力されます。関数の順序を次のように変更すると、次のようになります。

return "<pre><code>".nl2br(htmlspecialchars(highlight_string($code)))."</code></pre>";

文字エンティティは出力されていませんが、文字列はまだ強調表示されていません。明確にするために、適用されるテキストの色に影響を与える CSS 書式設定もありません。また、PHP の設定を確認したところ、強調表示の色が確実に指定されています。

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

php - フォームを確保するには?

ユーザーがメッセージを追加できるフォームがあるため、フォームのセキュリティに関する記事を読んでいました。

strip_tags()htmlspecialchars()およびを使用するのが最適であると読みましたnl2br()。他のどこかで を使用すると言われていますhtml_entity_decode()

ユーザー入力を受け取るページにこのコードがあります

しかし、メッセージをエコーすると、すべてが1行になり、改行がによって削除され、strip_tags元に戻されないように見えnl2br()ます。

ブレークが削除された場合、それをどこに戻すか (またはそれを行うか) をどのように知るのでしょうか?

とにかく、フォームでjavascriptを使用するなど、サイトをハッキングしようとするためにフォームを保護できる方法を探しています。

0 投票する
6 に答える
39451 参照

php - htmlspecialchars(): 引数のマルチバイト シーケンスが無効です

ローカル サイトでこのエラーが発生しています。

誰が知っていますか、問題は何ですか、またはこれに対する解決策は何ですか?

ありがとう。

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

php - HTMLの特殊文字を削除する

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

php - UTF-8 文字列を使用しようとすると、PHP htmlspecialchars() 関数エラーが発生する

私は次のことをしました:

  1. データを含むスプレッドシートがあります。行の 1 つに ü 文字が含まれています。
  2. これを CSV ファイルとして OpenOffice.org に保存します。文字エンコーディングを尋ねられたら、UTF-8 を選択します。
  3. Navicat を使用して MySQL データベース テーブル、InnoDB を UTF-8 utf8_general エンコーディングで作成し、CSV をインポートします。
  4. 特別なü文字を含む文字列htmlspecialchars($string, ENT_COMPAT, 'UTF-8')であるPHP関数を使用しようとしました。$string

エラーが表示されます: Invalid multibyte sequence in argument。で変更'UTF-8'すると'ISO8859-1'、エラーは発生しませんが、間違った文字が表示されます。(「未知の文字」文字は、のように見えます<?>)

HTML フォームを使用してデータベースの文字列を更新すると、エラーが消えて文字が正しく表示されますが、Navicat でレコードを見ると、2 つの文字のように見えます。

[1/4][A with some thing on top of it]

1文字とは見なされないマルチバイト。

何が起こっているのか、どこで問題が発生しているのか、それに対して何ができるのか?

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

php - How to replace - with – using php

How do i replace - with &ndash; using php htmlspecialchars()

$content = $_POST['content'];

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

php - htmlspecialchars を介した EUC-jp の XSS

日本語の文字セット euc-jp は xss を作成しますか?

次に、パラメータ a を %f0 として取得します。

私はそれから悪い気持ちを持っています

例を挙げていただけると嬉しいです

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

php - HTMLpurifierがマークダウンでPHPの短縮構文の例をエスケープしないようにするにはどうすればよいですか?

私はマークダウンとHTMLpurifierを使用しており、マークダウン<?= $variable ?>コードに(インデント構文を使用して)省略形のPHP()の例を入れたいのですが、HTMLpurifierはタグ<を許可された要素として認識せず、エスケープしています。

HTMLpurifierでこれをエスケープするのを防ぐために有効にする必要がある構成オプションはありますか?

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

php - php XML DOM は特殊文字を &#xYY; に変換します。

これを AJAX POST で送信します。

XML を作成するには、次のようにします。

そして私はこれを得る:

¿Dónde habré olvidado... mi memoria?

に変換:

XML に元の文字が必要です。これらは有効な utf-8 であり、このエンコードの理由がわかりません :(