サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
blog.ichikaway.com
この記事はTLS/SSLを実装してみたいという人が増えるといいな!という気持ちで書いています。実装の詳細は別記事で書こうかと思います。 数年前からいつかTLS/SSLのプロトコルをPHPで実装したいと思い、まずは本で知識を得ようかとラムダノートの「プロフェッショナルSSL/TLS」や 「徹底解剖TLS1.3」を買って読んでみましたが、なかなか頭に入らずに読んでは寝てしまうというパターンに。 やはり自分でTLSを実装してみないとなと思ってたところに、PHPカンファレンス福岡2024で hanhan1978 さんの「PHPでデータベースを作ってみた」を見て大いに刺激をもらい、ついにTLS実装に着手できました。 speakerdeck.com この資料は本当によくて名言の宝庫です。たとえば、 「まじめに作ろうとすると大変な努力が必要になる。もっと迂闊につくりたい」 「不格好でもいいので、動く完成
2023年11月1日の時点の情報です。 先にまとめを書きます。興味があれば詳細もどうぞ。 まとめ 10月16日のChrome 118からHTTPS ファーストモードがデフォルトでオンに 条件によってHTTPS Upgradeが働いてhttpのサイトにアクセスするとhttpsに優先的にアクセスさせる挙動(Chromeが内部で擬似的に307リダイレクトを返してhttpsに誘導) HSTSサイトではないhttpサイトでもこの挙動となるケースがある httpsにアクセスできない場合やレスポンスに3秒以上かかる場合はフォールバックでhttpに誘導(Chromeが内部で擬似的に307リダイレクトを返して元のhttpに誘導) 詳細 条件 307で擬似的にリダイレクトする条件は、いくつかあるようです。把握しているものを列挙します。 HSTSサイト(HSTSヘッダ指定、Preloadリストのサイト) HST
数年前に40歳を超えてました。 人生の折り返し地点っぽいのでまとめておきます。 (自分がこうすればよかったという話で、読んだ方にこうした方が良いですよという記事ではありません) 自分にとっての幸せとは何か、何が嬉しいかを40歳超えてからよく考えるようになったのを記事にしました。 はりきりすぎずコツコツ長く続けるのを優先すべきだった 早めにスキルを習得してすぐに活かせるのを優先しすぎた気がします。仕事でも生活でもそんな感じ。もっと好きというものに優先度を上げておけば良かったです。 あと、はりきりすぎてワクワクしながら計画を立てたり調べたりするところまでは良かったのですが、その後続かないというのが多かった。 何に対しても1年ぐらい無駄に費やす気持ちで、毎日少しでもやればOKぐらいで続けるのを優先すれば良かったです。ただ若い頃の自分にそれを言っても効かない気がしますけど。 いまは難しいものは年単
IP制限しているTCP 22(sshd)や3306(MySQL)のようなポートが空いていないかチェックするツールを作りました。 たとえば設定ミスで22番ポートがすべてのIPを許可している状態になってしまっていたというケースがありそうで、サーバ台数が数百台になってくるといちいち気にしているのが面倒なのでチェックする簡易ポートスキャナーを作りました。 github.com 外部監視ツールだとポートが空いてるか、任意の文字列が返るかなどのチェックはできますが、ポートが閉じられてることというのを簡単に管理するのが意外と手間だと感じたのがきっかけです。 Go言語で作ってるのでバイナリにして実行もできます。 使い方 goが動く環境を用意して、 echo "example.com\nexample.net" | go run aite9 -tcp 22,3306 のようにすると次のように一気にポートをス
オンラインで開催されたPHPカンファレンス2020に登壇してきました。 VAddyとしてはブロンズスポンサーで協力させて頂きました。 「DNS改ざん検知ツールの実装とDNSパケットの世界」というタイトルで、前半はドメイン名ハイジャックの仕組み、事件例、対応ツールとしてのNScheckerの話をしました。後半は、DNSは面白いことを伝えたく、DNSのパケットやプロトコルの話をしました。 docs.google.com DNSは30年以上の歴史があり、その仕組みが現在のインターネットを支えています。ドメイン名ハイジャックの事件を知り、怖くなって改竄検知ツールNScheckerを作ったのですが、その時にDNSプロトコルを勉強してその面白さに気付きました。 後半では、DNSの面白さが少しでも伝わればと思い、あえてバイナリデータのダンプを表示してラベルやオフセットの仕組みを解説しました。 今年の夏頃
NScheckerというDNS改竄検知ツール(slack通知も可能)を作っていて、メジャーバージョン v1.0.0をリリースしました。このリリースで使えるツールになりました。 GitHub - ichikaway/nschecker: DNS record changing detection tool with slack notification. MacとLinuxの実行ファイルはこちらからダウンロードできます。 https://github.com/ichikaway/nschecker/releases 1ヶ月前に、このような記事を書きました。 blog.ichikaway.com この時は、対応するドメインが.com .net .jpのみでしたが、今回のメジャーバージョンリリースで全ドメインに対応しました。whoisで出てくるTLD権威サーバに登録されているNS情報はすぐに変更
暑い夏2020、DNSと戯れていました。 レジストラの脆弱性でDNSが改竄されてサイトがハッキングされる事件を見て、これを防ぐ方法がなかったので7月末にDNS改ざん検知ツール NSchecker を作って公開しました。 blog.ichikaway.com 結論 忙しい方のために結論だけ先に。NSchecker Ver0.03ではDNS改竄検知速度が60秒程度に大幅改善しました!(Ver0.01では最大48時間の検知遅延) NScheckerのソースコードはこちら。 github.com 詳細 このツールはDNSのNSレコードが改竄されるとSlackで通知できる(slack以外も可能)ため便利だったのですが、NSレコードの参照がDNSキャッシュサーバだったため検知が最大で48時間ぐらいかかる問題がありました。(NSchecker Ver 0.01) 無いよりはマシなツール程度になってしまっ
DNSのNSレコード、MXレコードの改竄を検知(変更検知)し、オプションでSlack通知もできるツールを公開しました。 https://github.com/ichikaway/nschecker Go言語で開発し、LinuxとMacのバイナリもダウンロードできます。 すぐに実行できるため、cron指定しておけば意図しないレコードの変更がわかります。 作った経緯 最近、ドメインハイジャックの事件を目にするよになりました。 DNS設定の改ざんによるドメイン名ハイジャックに注意喚起(JPRS) | ScanNetSecurity 2020年6月にコインチェックのドメインハイジャック事件が起きています。 コインチェックのドメインハイジャックの手法を調査した - Shooting!!! この記事を読むと、改竄されたレコードは、ns-1515.awsdns-"0"61.orgのような一見正しそうだが
PHPerKaigi2019で登壇してきました。全体の感想などは後編に書きます。 カンファレンスで発表するのは3年ぶりぐらい。今回はPHPのファミコンエミュレータ実装をGolangで写経してた時の話をしてきました。 ファミコンエミュレータはPHPやGolang, Rustなどたくさんの実装があり、厳密に決まってるCPUやメモリの仕様を元に実装されてます。その実装を通してコンピュータアーキテクチャの理解が進む、低レイヤーの入り口に立てる、という柱を立てて発表しました。PHPで読めて、コンピュータアーキテクチャが学べるって最高じゃないですか? ゼロから始めるファミコンエミュレータ生活 PHPerKaigi2019 from ichikaway www.slideshare.net 登壇後は、ファミコンエミュレータに興味を持った、作ってみたいというフィードバックを頂きました。今回の発表のゴールに
最近、趣味でファミコンエミュレータをGo言語で実装しています。 github.com 世の中にはたくさんのファミコンエミュレータ実装があり、golangだけでもいくつもあるため何で同じ言語で実装するのかと言われると、楽しそうだからとしか言いようがありませんが、趣味の話なので気にしないようにしましょう :) 私は下記のPHP実装のファミコンエミュレータを読んで、PHPなら読める・・読めるぞ!と思って写経しています。せっかくなので勉強し始めたgolangで実装をしています。 www.hasegawa-tomoki.com ここ1ヶ月ぐらい、毎朝20分ほどファミコンの仕様を読みつつPHPのコードを読みつつgolangに移植しているのですが、まだHello Worldが出力できていませんw そんな時間のかかるHello Worldですが、そこにたどり着くまでにファミコンのROMデータのロード、CP
CakePHPアドベントカレンダー12日目の記事です。 市川@cakephperです。ちゃんとCakePHP使ってますよ! 丹精込めてVAddyを作ってます。 最近コンビニで常陸野ネストビール セッションIPAが売っててテンションが上がりますね。 CakePHP2,3のDBカラム名の扱い CakePHP2の公式ドキュメントでは下記の注意書きがあります。 CakePHP は、配列の値部分のみエスケープします。決して キーにユーザーデータをセットしないでください。SQLインジェクションの脆弱性になります。 CakePHPのORMでWHERE句を生成する場合に、カラム名やSQLスニペットはエスケープされません。 あまりないパターンかもしれませんが、ユーザから送信されたリクエストデータの配列をそのまま条件に指定している場合はSQLインジェクションにつながります。 CakePHP3 公式ドキュメント
これはPHPアドベントカレンダー2017 8日目の記事です。 今年もBrewDog ホッピークリスマスIPAの季節になりましたね。美味しいクラフトビールに恵まれて幸せです。 市川@cakephperです。 丹精込めてVAddyを作ってます。 経緯 2017年9月にLaravel5.5にタイミング攻撃が存在するという脆弱性が CVE-2017-14775 として公開されました。 修正のPull Requestはこちらです。 [5.5] [Security] Close remember_me Timing Attack Vector 日本語の記事として、Innovator Japan Engineers’ Blogのlocakdiskさんの記事があります。 Laravel の脆弱性 CVE-2017-14775 の対処法 この修正を見て、そもそも最近の高速なCPUや複雑なネットワーク、サーバ
VAddy Adventカレンダー6日目の記事です。 VAddyの海外展開 VAddyは海外にも売れるサービスだと思ってます。海外のブログ記事では、「DevOpsにセキュリティテストを!」という記事をよく見かけるため、需要は国内の何倍もあると思います。 セキュリティテストの需要は国内外関係ないですし、現地語じゃないと普及しないような特殊なサービスでもないため、私たちも最初から海外も含めて売るつもりで作っています。 英語の壁 VAddyの製品紹介ページ、マニュアル、サービスの管理画面は全て英語/日本語の両対応です。国内ユーザも多いため日本語のサポートはしっかりやりますし、画面を設計していく上でもまず日本語で考えて後から英語の文言を差し込んでいます。 英語の壁は高いというのも感じていて、意味が通じる英語の文章であれば自分たちでも書けるのですが、製品ページやブログ記事などはより自然な英語にしない
VAddy Adventカレンダー3日目の記事です。 今日もVAddyプロダクトマネージャ兼フロント側の開発を担当している市川が書いてます。週末はポエムっぽい内容にしようと思うのでQiitaではなく、自分のブログに書きます。 2日目の記事で私の好きなビールはペールエールやIPAと書きました。 qiita.com 逆に好きではない苦手なビールは、ウィートビール、白ビールと言われている華やかな香りで多くはバナナっぽい匂いがするものです。ヴァイツェンやヒューガルデンなんかそうですね。女性には人気の白ビールですが、IPA好きな私の周りの人を見るとこれが苦手という人が多く、おっと白ビール派の人たちに正座させられそうなのでこのへんにしておきますね。 VAddyの名前 VAddyは私が考えた造語で、Vulnerability Assessment is your Buddy(脆弱性診断はあなたの相棒)と
外部から簡単にHTTP_PROXYという環境変数がセットでき、サーバ間通信や外部サイトと連携している場合に影響があるかもしれない脆弱性です。(HTTPoxy. CVE-2016-5385) PHPの場合はphp-fpm, mod_php, Guzzle4以上やいくつかのライブラリで影響あります。 対応方法は簡単です。 Apache側で対応する場合は、mod_headerを使える状況であれば、confファイルに下記の1行を追加。 RequestHeader unset Proxy FastCGIの場合は下記の1行を追加。 fastcgi_param HTTP_PROXY ""; Guzzleは6.2.1で対応されたようです。 Release 6.2.1 release · guzzle/guzzle · GitHub コミットログを見ると、CLIの時のみ、getenv('HTTP_PROXY
Githubを使っていると、diff表示が行単位ではなく文字単位になってて便利かと思います。手元の端末でも同じようにdiffを文字単位に表示したい時は、diff-highlightというスクリプトを使えばできます。表示は上の画像のようになります。 diff-highlightは、gitの公式リポジトリのcontribディレクトリの中にあって、perlのスクリプトファイルです。 https://github.com/git/git/tree/master/contrib/diff-highlight 一番簡単な設置は、/usr/local/binなどの場所にダウンロードして実行権限を与えればOK。 wget https://raw.githubusercontent.com/git/git/master/contrib/diff-highlight/diff-highlight chmod
このページを最初にブックマークしてみませんか?
『blog.ichikaway.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く