こんにちは。GoでWeb開発していますか?私はしていません。Goに限らず、既成のWebアプリケーションフレームワークを使わずに自前でWebフォームを作る場合、なにも考えずに書くと CSRF (Cross Site Request Forgery) 脆弱性を作りこみ、不正なユーザー操作を実行されてしまう可能性があります。 ダメな例 例えば以下のGoコードで作成されるフォームにはCSRF脆弱性があります。SubmitSignupForm ハンドラは、受け取ったリクエストが自分のサイト上のフォームからサブミットされたものかチェックしていないので、攻撃者が他のサイト上のフォームを使い、第三者のユーザーのブラウザで任意の操作を実行させることができてしまいます。 func main() { r := mux.NewRouter() r.HandleFunc("/signup", ShowSignupF
この記事はGo 4 Advent Calendar 2020 2日目の記事です。 この記事について OpenAPIのyamlファイルから、APIサーバーやクライアントコードを生成するopen-generatorというツールが存在します。 今回は、これを用いてGoのAPIサーバー/クライアントのコードを自動生成させ、それに手を加えて実際に使えるようにするまでの過程を紹介します。 使用する環境・バージョン go version go1.14 darwin/amd64 openapi 3.0.1 openapi-generator 4.3.1 OpenAPIとは? OpenAPIとは、REST APIを記述するためのフォーマット規格です。決められた記法でAPI仕様を記述すると、その内容をSwagger UIというきれいな形式にして確認することができるようになります。 "Swagger"というのは
丹内です。少し前からGolangを勉強しつつブログ記事を書いていました。 夏のAWS関係の仕事が落ち着いたらGolangを改めて勉強しようと思っていた矢先、タイトルのイベントが開催されていたので、参加しました。 イベントサイト Twitterまとめ いまさら聞けないselectのあれこれ buildersconというイベントを準備中 10/22発売のWeb+DB Press (バッファ付き)チャネルはブロックが発生しうる selectにチャネル操作以外を入れるとエラーとして教えてくれる nil channelは読み書きでブロックするので、selectは成功することがない 有効だったchannelを無効にしたり、ある時点から有効にしたりできる timerとfor selectのパターンはタイムアウトに応用可能 doneチャネル: 処理が終わったらループを脱出 1.7からはcontext se
Malwarebytes は、驚くべき成長を見せています。1年以上前にこのシリコンバレーの会社に入社して以来、私の主な仕事は急成長するセキュリティ企業の力となるシステムの設計と開発です。日々数百万人が利用する製品をサポートするために必要な、全ての基盤をつくります。私は12年以上、アンチウイルスとアンチマルウェアに関わるいくつかの会社で働いてきました。毎日処理する膨大なデータのせいで、これらのシステムがどれだけ複雑なものになるかを理解しています。 面白いことに、ここ9年ほどで私が携わったWebのバックエンド開発のほとんどは、Ruby on Railsが使われていました。誤解されないように言っておきますが、私はRuby on Railsが大好きですし、すばらしい環境だと思っています。しかし、Rubyでシステムを設計し始めると忘れてしまうのは、マルチスレッド化や並列化、高速化、メモリオーバーヘッ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く