こんにちは!DA(データアナリティクス)事業本部 サービスソリューション部の大高です。 本エントリでは、jqを利用してエスケープ処理済みのJSON文字列を作成する方法を紹介したいと思います。 結論 結論から言うと、下記のようなコマンドで作成できます。 $ cat event-detail.json | jq '@json' > escaped-event-detail.json やりたいこと たとえば、AWS CLIを利用する時などに、以下のようなリクエスト形式を持つAPIがあります。 [ { "Time": timestamp, "Source": "string", "Resources": ["string", ...], "DetailType": "string", "Detail": "string", "EventBusName": "string", "TraceHeade
概要 tmux/screen 上で nvim を使用した際に、 escape/Ctrl-[ 入力に対するレスポンスが遅いため、これを解決する方法について記述します。 tmux/screen 上で nvim のescapeレスポンスを早くする $HOME/.tmux.conf 上で 以下の設定を追記する set -s escape-time 10 screen の場合は、以下の設定を $HOME/.screenrc に追記します。 maptimeout 10 vimなどで、 escape-time を 0 にしている例をよくみかけますが、nvimの場合0だとうまくいかず、 10程度のdelayを必要とします。 なぜこのような挙動になるのか tmuxではEscape入力があった際に、500msec のディレイの後にバックグラウンドのターミナルにコマンドを送信している。 上記の設定ではこのディレ
(Last Updated On: 2022年9月28日) プログラムからCSSファイルにデータを書き込む場合、エスケープしないと不正なCSSになってしまう場合があります。現在のブラウザはCSSでプログラムを実行する仕様が削除されているのでコード実行脆弱性の問題になりませんが、不正なCSSはセキュリティ問題(クリックジャック等)になる場合もあります。 HTML内のCSSの場合、エスケープしないとJavaScriptの実行を許してしまいます。HTMLエスケープでJavaScript実行は防げますが、不正なCSSのインジェクションを防ぐにはCSSエスケープが必要です。適切に処理しないとCSSキーロガーを仕込まれて情報を盗まれたりします。 CSSのエスケープ仕様 CSSのエスケープ仕様の概要はW3Cの https://www.w3.org/International/questions/qa-e
(Last Updated On: )PostgreSQL Advent Calender用のエントリです。 エスケープ処理が必要なのにエスケープ用のAPIが無い状態は良くありません。エスケープしないために動かないのはまだ良い方です。エスケープが必要なのにエ スケープをしなくても動いてしまい、セキュリティ上の問題となる場合もあります。全てのアプリケーション・ライブラリはエスケープが必要なデータに対するAPIを持っておくべき です。今回はPostgreSQL 9.0から追加されたエスケープ関数を紹介します。 PostgreSQL使い始めて最初の頃に気づくのはuserなどの予約語がフィールド名に使えない事かも知れません。例えば、 yohgaki@[local] test=# CREATE TABLE user (name text); ERROR: syntax error at or ne
第四企画 坂井 潔 ここではPHPでSQLインジェクション対策としてエスケープ・クォート処理を行うケースを説明します。なおSQLインジェクションの簡単な説明や、プレースホルダを用いてより効果的な対策を行うケースに関してはプレースホルダ編を参照してください。 エスケープとは? それではエスケープ処理とはなんでしょうか? 分かりやすいケースとして、文字列を扱う場合を説明します。 例えば「名前がO'Reillyの行をテーブルusersから取得する」あるいは「テーブルusersに、名前はO'Reilly、メールアドレスはo'reilly@example.comとo'reilly_mobile@example.netの2つを改行で繋げたデータを、行として挿入する」と言ったSQLをつくると、この命令文全体が1つ文字列になります。その命令文としての文字列の中に、値としての文字列を埋め込む場合には、それが
第四企画 坂井 潔 pg_escape_****によるエスケープ PHPからPostgreSQLを操作するためのネイティブな関数としてpg_****関数群があります。データベースへの接続方法はプレースホルダ編を参照していただくことにして、ここではpg_escape_****を使ってエスケープ・クォートをする例を説明します。 以下のpg_escape_****や、その他の関数はすべて、Shift_JISではなく、UTF-8、EUC-JPなどをPHPの内部エンコーディングとして使うことを前提に記述しています。PostgreSQLとPHPのエンコーディングが別々だったり、Shift_JISなどを使用した場合、関数が思わぬ挙動をすることがあるので、ご注意ください。 PHPで用意されているpg_escape_string関数とpg_escape_bytea関数はそれぞれ文字列型、bytea型のデータ
PostgreSQL9.1の仕様変更にて、デフォルト時の設定として、standard_conforming_stringsがonとみなされるようになりました。この仕様変更により、デフォルト設定でのPostgreSQLは、バックスラッシュをエスケープする必要がなくなり、ISO規格のSQLと同様のエスケープルール(シングルクォートを重ねるのみ)となります。 PostgreSQLの文字列リテラルは、元々MySQL同様に、バックスラッシュをエスケープする仕様でした。その後、リリース8.1にて、設定パラメータ standard_conforming_strings が追加され、この値が on の場合、バックスラッシュをエスケープしない(ISO規格と同様の)仕様となりました。従来のリリースでは、standard_conforming_stringsを指定しない場合offとみなされていました。これは、後
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く