問題タブ [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.
php - テキストエリアファイル編集php
ファイル、html、phpなどを編集するためのPHPスクリプトがあります。
テキストエリアフォームフィールドに入力する場合を除いて、それは完全に機能しています。次に例を示します。
特殊文字は、スペースのみとアンパサンド & のみに自動的に変換されます。
しかし、ファイル エディターの目的は、必要なものを正確に入力して表示することです。html コードはエンティティ フォームで記述される必要がある場合とそうでない場合があり、非エンティティ フォームに自動的に変換されることを望まないからです。ドキュメント全体が特殊文字に変換されるため、htmlspecialchars または htmlentities は機能しません。
htmlspecialchars を使用した場合のドキュメントのビュー ソースは次のとおりです。
そして、ブラウザに次のように出力されます。
私はこの唯一無二のジレンマを抱えています。投稿データの処理から htmlspecialchars を単純に削除すると、html エンティティが自動的に読み取り可能な形式に変換されることを除いて、すべて問題なく動作します。宇宙へ、そして&アンプ; アンパサンドに &
何か案は?私は、cPanel がファイル エディター、net2ftp、および他の多くの Web ベースのファイル テキスト エディターで何らかの形でこれを行うことができたことを知っています。
ありがとう
xss - htmlescape/htmlspecialcharsの取り扱い
XSSを防ぐために、ユーザー入力を出力するときはいつでも(間違って入力されたものを表示するときや、以前に送信された値でフォームを再描画するときのように)、htmlをエスケープする必要があります。それは確かなことです...
だから、
正しくないでしょう。
代わりに、これを行います。
そのことを念頭に置いて、ここに私の質問があります。$ _ GET ['company_name']を元のテキストボックスに表示する必要がある場合はどうしますか?長すぎるという理由だけで、ユーザーにそのcompany_nameを修正してもらいたいのではないでしょうか。
htmlspecialcharsを使用し、company_nameがAT&Tと言った場合、&thereはエスケープされ、&として表示されます。ではない?
では、この状況にどのように対処するのでしょうか。もちろん、それをhtmlspecialcharしないで、そのまま返すだけだと言う人もいるかもしれません。
しかし、誰かが私たちに、テキストボックスを停止するように注意深く作成されたcompany_nameを送信して、javascript onclickを開始し、そこからXSSを実行する場合があります。
このような状況でhtmlescapeにどのように対処しますか?history.go(-1)を使用するだけですか?
php - HTML エンティティに置き換えられた文字が再表示される
私は単純なことをするのに苦労していstr_replace
ます。
文字列からすべてのコンマを削除しようとしていますが、これは機能します。しかし、文字列を再度変更しようとすると、カンマが何らかの形で再表示されます。これを引き起こさないようにコードをリファクタリングしました。
とにかくここに私のコードがあります。誰でもバグを見つけることができますか?
私の文字列が何らかの形で変換されていないようです。名前を混同して、最初の文字列を使用して最後の文字列を作成した可能性が最も高いと言えます。しかし、残念ながらそうではないことがわかります。
php - PHP prevent htmlspecialchars from converting numbers in URL
I have this url which I need to pass to the browser and would like to encode it. However I have numbers in the url string which also gets converted and thus causes issues.
Here is my string.
And if i use htmlspecialchars, it would convert both 132 to 100 which is wrong. How to prevent that?
UPDATE: perhaps I should mention that my string looks like that because I am using timthumb script.
Also I am not even sure if I need to encode anything? or is the URL i provided safe?
php - HTML特殊文字
私はphpを使用しています。特殊文字に問題があります。たとえば、一言あります。私がphp側でエンコードするとき
それは正しいことを返しit's
ていますが、ブラウザはそれをデコードしません。したがって、ブラウザでも同じです。なぜブラウザはそれをデコードしないのですか?
ありがとう
php - ユーザー入力をデータベースに保存する前にエスケープ/エンコードするか、データベースにそのまま保存して取得中にエスケープする方が良いですか?
htmlspecialchars()
XSS攻撃を防ぐ機能を使用しています。以下からデータベースにデータを保存するためのより良い方法は何かについて疑問があります。
方法 1 :関数を適用した後、ユーザー入力値を格納しますhtmlspecialchars()
。これを使用すると、ユーザー入力"<script>"
は「<script>」になります。.
方法 2 :ユーザー入力をそのままhtmlspecialchars()
保存し、データを取得してページに表示しながらメソッドを適用します。
私の疑問の理由は、メソッド 1 を使用するとデータベースにオーバーヘッドが発生するのに対し、メソッド 2 を使用すると、PHP から要求されたときにデータを何度も変換する必要があると考えているからです。なので、どちらが良いかわかりません。
詳細についてhtmlspecialchars($val, ENT_QUOTES, "UTF-8")
は、' と " も変換するように使用しています。
私の疑問を解消するのを手伝ってください。できれば解説も。
ありがとう。
c# - CKEditorおよびASP.NET4での画像のアップロード、アップロードiframeエラーへの応答
画像のアップロードオプションを指定したCKEditorwysiwygエディターを使用しています。'filebrowserUploadUrl'設定属性を設定してJSを設定しました。アップロードを処理するためのコードをいくつか作成しましたが、これはすべて正常に機能します。問題は、応答をCKEditorアップロードiframeに返送しようとすると発生します。私はJSのこの行でJSスクリプトタグを送り返そうとしています:
これが行うべきことは、URLフィールドに入力し、画像ポップアップの[画像情報]タブに画像のプレビューを表示することです。これは機能しません。[アップロード]タブでiframeのソースを表示すると、JSスクリプトタグがエンコードされ、次のようになります。
私は使用しています:
そしてまた私は試しました
jsタグ文字列を書き出す。
これがResponse.Write()の通常の動作だとは思いませんでしたが、他の場所でエンコードされている可能性があります。
この文字列がエンコードされる理由は何ですか?ここでの助けは大歓迎です。
ありがとう。イアン
php - htmlentities と htmlspecialchars が文字列の処理を拒否する
私の Debian ボックスでのPHP5 5.4.0-3への最後の更新以来、MySQL データベースからのテキストがあるはずの空のフィールドがいくつかのページにあることに気付きました。
少し遊んで問題を見つけました。
奇妙なことに、これは印刷されたものです:
しかし、ハードコードされたコンテンツで htmlentities を使用する場合 -> htmlentities("test"); それは魅力のように機能します。また、私がこれを行う場合:
それはまた言います
しかし、それは奇妙になります。データベースの他の変数とともに htmlentities または htmlspecialchars を使用すると、完全に機能します。
これの原因は何ですか?
php - PHPで「%23」を「#」に変換します
URL:example.com/search :#searchWord
#
はサーバーに送信されないため、に変更されます%23
。
検索ページに表示したい
結果:#searchWord
しかし、私が得るのは%23searchWord
です。試しhtmlspecialchars()
ましたが、何も起こりません。
php - プリペアドステートメントでのhtmlspecialchars()またはhtmlentities()の使用
プリペアドステートメントを使用して、データベースとの間でデータを保存、取得、更新しています。プリペアドステートメントを使用している場合、htmlspecialchars()またはhtmlentities()を使用する必要がありますか?
私が理解していることから、データを挿入するときにhtmlspecialchars()を使用する必要はなく、出力されるhtmlのみに関係します...
プリペアドステートメントを使用して、次のような登録フォームからのユーザー入力を保存している状況があります。
ログイン時にユーザー名とパスワードを取得し、次のように画面にユーザー名を表示する別のスクリプトがあります。
また、ユーザー名をSESSIONに入れて、次のようにセッションをエコーしました。
この例から、ユーザー名を表示するときにhtmlspecialchars()またはhtmlentities()を使用する必要がありますか?これは、HTMLを出力することの意味ですか?
もしそうなら、どこにhtmlspecialchars()またはhtmlentities()を実装しますか?