Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに はじめまして、セキュリティエンジニアのSatoki (@satoki00) です。今回はブラウザの開発者ツールのネットワークタブから隠れて、Webサイト内の情報を送信する手法をまとめます。所謂Exfiltrationというやつです。中にはCSPの制限をBypassするために用いられるテクニックもあります。CTFなどで安全に使ってください。 前提 発端はWeb上でテキストの文字数をカウントできるサイトが閉鎖する際の話です。カウント対象のテキストデータがサイト運営 (やサイトを改竄した攻撃者) に盗み取られていないかという議論が巻
_FORTIFY_SOURCEというバッファーオーバーフロー攻撃を防ぐのにとても有用なマクロがある。 知らなかった人は以下のmanでもまず見てください http://linuxjm.sourceforge.jp/html/LDP_man-pages/man7/feature_test_macros.7.html _FORTIFY_SOURCE (glibc 2.3.4 以降) このマクロを定義すると、文字列やメモリの操作を行う様々な関数を 使用する際にバッファオーバーフローを検出するための軽めのチェックが 実行されるようになる。すべてのバッファオーバーフローが検出される わけではなく、あくまでよくある例についてだけである。 現在の実装では、以下の関数にチェックが追加されている: memcpy(3), mempcpy(3), memmove(3), memset(3), stpcpy(3),
JSONが1行で記載されてて、めんどくさかった。 JSONを整形したり、フォーマットを整えて閲覧しようとして、ついついプラグインを探していてなぜかソレを使っていたんだけど、落ち着いて考えたら、コードフォーマッターに掛ければいいんだと気付いた。 そうだよね。コード整形にかけたら良かったんだよね。プラグインを検索とかアホなことしたので備忘録しておく。 IDE使うときはJSONをフォーマッターにかける reformat code でjson 整形が一発。 スクラッチファイルを使うとさらに便利。 ちょっとしたファイルの整形くらいなら、 IntelliJ のSractchファイルを使うのが便利。 これは他のファイルにも使えるので覚える便利な手段。 css/ json / xml などなど いちいちプラグイン入れなくていいですよね phpstorm や rubymine や pycharm などでも使
VPSで管理してるWEBサイトの死活監視のアラートメールが届き、ブラウザでチェックしたらサイトが見れない。SSHでログをチェックしたら「httpd invoked oom-killer:」の文字が…。 OOM KillerさんにApache(httpd)のプロセスが強制終了させられたらしい。 Jan 12 11:37:53 ns1 kernel: httpd invoked oom-killer: gfp_mask=0x200da, order=0, oom_score_adj=0 Jan 12 11:37:53 ns1 kernel: httpd cpuset=/ mems_allowed=0 Jan 12 11:37:53 ns1 kernel: CPU: 0 PID: 18178 Comm: httpd Not tainted 3.10.0-957.1.3.el7.x86_64 #1
サービスを運用してると、急に人気が出たり、新しくプログラムをデプロイしたりした時に、まれにメモリを食いつぶしてサーバが不安定になってしまうことがあります。その時サーバではOomKillerが動いて、Linuxが自動ででプロセスプロセスをkillしてメモリを確保しようとします。 どのプロセスがやっつけられてしまうかわからないので、サーバがとても不安定になったり挙動不審になったりすることが多いです。今回は、サーバでOomKillerが動いてしまった時の対処方法を紹介します。OSはCentOS 6.5 64Bitです。 ■とにかくサーバの再起動しましょう OomKillerが動くと正直、何が起こるわからないです。どのようなプロセスが停止されて、どんな状況なのかわからないことが多いです。なので、一旦サーバの再起動をしてしまいましょう。サーバが動いている感じがしても、今後の事も考えてサーバを再起動し
はじめに 2019/7/10追記 NAMEOF_TYPEの例が0.8.0以降のバージョンで動かない問題を修正しました (Thanks! @tyu_ru_cppさん) C++だと「enumで定義した名前を文字列にしたい」というときに困ることがたまによくあります。他の言語だとToStringメソッドを使って文字列にできたりするのですが、C++だとそうはいきません。 Qtを使うと独自の黒魔術によって比較的楽に取得することができるのですけども、Qtを使わないピュアなC++な環境だとどーすんだろっていう感じです。 そこで、Siv3dの作者さんである@Reputelessさんが、まさにそのenumから文字列の変換ができるライブラリについて呟いておられまして、その機能と実装方法に感銘を受けたので、ここで紹介したいと思います。 C++ で enum の値を追加の記述無しで文字列にできるライブラリだ (MS
依存関係の検査 : make とシェルスクリプト 単純な処理の場合には、ソフトウェアの構築にシェルスクリプトを使用して整合性を保つことができますが、ソフトウェアプロジェクトの構築では多くの場合スクリプトは適していません。プログラムまたはオブジェクトモジュールのうちの 1 つだけが変更されている場合に、単純なスクリプトを使用してすべてのプログラムまたはオブジェクトモジュールをコンパイルするのは効率がよくありません。また、スクリプトを繰り返し編集しているうちに、整合性を保つことができない場合があります。再コンパイルが必要なモジュールだけを再コンパイルするスクリプトを記述することはできますが、それには make を使用する方が適しています。 make を使用すると、構築するファイルとその構築方法を簡潔かつ構造的に記述することができます。make は、依存関係の検査という仕組みを使用して、各モジュ
・Ctrl + k -> 対応する括弧にジャンプ ※「その他 -> 動作環境 -> ウィンドウ -> 詳細 -> カーソル移動系」の中に「対応する括弧に移動」というのが入っており、ツールバー・アイコンに追加することができる。 ※対応する括弧の強調表示が可能。
PHPで長時間かかる重い処理を行うとき、 マルチスレッドで動かせたらなぁ!と思うことがよくあります。 マルチスレッド処理を行うことで、時間のかかる処理を 複数同時に並列実行でき、高速化することができます。 (特に通信処理などで遅延がある場合に有効です) PHPにはpcntl_forkというプロセスをフォーク(複製)することが できる関数がありますが、これはPHPをCGIモードで 動かしている場合にのみ有効です。 通常はPHPをApacheモジュールとして動作させていることが 多いので、これが使えないケースが多々あります。 他には、system関数などでシステムコールを行い、 など & を使って実行するという方法もありますが、 これもphpがCGI版として実行できなければいけません。 システムコールで呼ぶプログラムをPerlなどで 書けばいいのですが、できればPHPで全部統一したいものです。
今開発中のPlayer!のログイン・登録画面で、こんな進捗表示をしていますが、これ実はフェイクだったりします( ´・‿・`) (Qiitaの画像サイズ制限が厳しくて粗いです。キレイなものは実際にアプリダウンロードしてご覧下さい。) 経緯 元々、この画面はこういう進捗表示では無く、単にインジケーターがクルクルするだけで、進捗状態が分からないものでした。 特にネットワークが悪いところだと、バグって固まってしまったのでは?とユーザーを不安にさせるようで、たまにそういう声を聞くことがありました。 登録フローは大事なところなので、そういうところでこれが原因で離脱してしまうと残念なので、改善が必要でした。 そこで、ネットワーク処理にもたつきつつもちゃんと正常に処理をしているということを示すために、進捗を表示することにしました。 ただ、例えば大きな画像などメディアファイルダウンロードなどならともかく、こ
Pythonで出力したUTF-8のCSVを渡したら「文字化けしてExcelで読めない」と言われて困りました 原因は文字コードがUTF-8の時によく問題になるBOM(バイトオーダーマーク)です バイトオーダーマーク - Wikipedia UTF-8のファイルにはBOMが付いている場合と付いていない場合があります ExcelはBOMが付いていないと正しく読み込んでくれません なので、例えばメモ帳で開いて保存し直すと、BOMが付いてExcelでも開けるようになります 今回の問題とは逆にBOMがついていると動かないこともあって、以前BOMが付いたUTF-8のファイルをChromeに渡したら何故か動かなくて悩みました Google Chrome のユーザースクリプトで名前やバージョン番号が反映されない - 唯物是真 @Scaled_Wurm ちなみにPythonだと文字コードにutf-8ではなくu
gcc(Gnu C Compiler)の拡張文法 [警告!] C/C++言語初心者はこのページを読まないでください。 このページではgcc独自のC/C++拡張文法について解説します。 これらの拡張文法が可能にする機構は確かに便利なのですが、 もちろんANSI規格に従っていないので、一般的には使うべきではありません。 C/C++言語文法を学び始めている初心者はこれらgcc拡張文法を 知るべきではありません。C/C++言語を正しく理解する上で大きな 支障となります。 C/C++言語を十分に熟知した者は、gccがこのようなこともすることを 「雑談」として知っておくと楽しいかもしれません。もちろん 実戦に使うべきではありませんが。しかし初心者が偶然に、これらの 機能を使ってうまくいく場合がありますので、そのような初心者を 見つけたら、それが標準規格ではないことを注意してください。 配列変数をコピー
改行コードや文字コードってWindows、Mac、Linuxの3大OSでそれぞれ違っていて、ソースコード管理で違ったモノが入っちゃうと面倒なのでeclipseを使う場合は設定して統一しておきましょう。 ここでは文字コードはUTF-8、改行コードはUnixにしています。 プロジェクトごとに設定する プロジェクトのコンテクストメニューから[Properties]を開き、Resource画面で設定します。 全体で設定する メニューから[Eclipse]->[Preferences...]を開き、Workspaceの設定でText file encoding、New text file line delimiterを設定します。 既存ファイルの改行コードを変更する 改行コードが違うファイルが混じってしまった場合、変更したいファイルを選択した状態で、メニューから[File]->[Convert Li
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く