「CSRF」を含む日記 RSS

はてなキーワード: CSRFとは

2021-06-17

経験から1ヶ月でWeb企業就職する勉強法

取り上げた技術は、本格的な開発でも役に立つもので、最も学習コストが低いものを選んだ。

重要度が低いものは載せていない。たとえばHTMLCSSなんてググりながら書けば全く問題ない。Bootstrapなどのフレームワークも全くやる必要はなく、仮に就職先で使っていたら覚えればいい。

逆に言えば以下に挙げる技術は、そもそも概念自体プログラミングにとって普遍的ものであり、(基礎的な部分を)調べながら使うようではエンジニア失格ということ。

基本的現在では、バックエンドフロントエンド運用保守全てができないエンジニア価値は無い。

以下に挙げた技術(①⑤⑥は他の言語フレームワーク代替可能)が身に付いていなければまともな企業就職することは難しい(もちろん、下らない業務システム下請けで作ってる底辺企業には入れるだろうが)。

経験者でも、これらができない/わからないのは、相当恥ずかしいことだと思った方がいい。

特定言語フレームワークの書き方を知っていること自体意味は無い。

重要なのは、他の言語フレームワークにも共通する基礎を理解すること・保守性やセキュリティなどの品質を高める使い方ができること。

PythonJavaScriptマスターする

この2つは習得が容易だし、今覚えておけば向こう10年腐ることはないだろう。

プログラミング言語完璧理解する必要がある。

基本的な構文や、よく使う標準ライブラリは勿論、高階関数クラス・非同期処理等の発展的な機能も知り尽くしていなければならない。

言語のみではなく、パッケージ管理単体テストタスクランナー等の周辺ツールの使い方も熟知している必要がある。

また、「リーダブルコード」や「コードコンプリート」に書いてあるような良い作法も身に付ける必要がある。


Gitの基本操作を覚える

Gitを使えないのはプログラマーとして論外。細かい機能は調べればよいが、

等の基本的フローは必ずできなければならない。


Linuxの基本操作を覚える

多くの場合、本番環境テスト環境Linuxサーバーであるから、以下のような基本的概念と使い方を知っておく必要がある。


Dockerの基本操作を覚える

環境構築、CIデプロイなどは、現在コンテナを使って行うことが当たり前になっている。

これも細かいことをすべて覚える必要はないが、Dockerfileの書き方や、docker-composeの使い方などは知っておかなければいけない。


⑤ Flaskを覚える

Flaskは、数あるWebフレームワークの中で最も簡単。本当に呆れるほど簡単で、Pythonさえ書ければすぐにアプリを作れる。

フレームワークを覚えること自体重要なのではなく、Web開発の基本を習得することが重要HTTPルーティングデータベースSQL認証セッション管理などは当然すべて覚える。

データベースは、就職したらMySQLPostgreSQLなどを使うことが多いかも知れないが、今はPythonの標準ライブラリにあるSQLite3を使えば十分。

作ったアプリを公開したければ、「Heroku」などにデプロイするのが良いだろう。

追記 2021/06/17 14:07

ブコメで指摘をいただきました。HerokuではSQLite3は使用できないようです。公式ドキュメントに従ってPostgreSQL使用して下さい。

SQLite3はファイルデータを持てる簡易DBなんだけど、Herokuデプロイしてもストレージ的な使い方はできないから、結局PostgreSQLを使う必要あるから注意してね。(DAOを丸ごと書き換える羽目になる)

参考: https://devcenter.heroku.com/ja/articles/sqlite3

ありがとうございます

Vue.jsを覚える

今の時代フロントエンドフレームワークなしで作るのはただのバカ

2021年現在実用的なフロントエンドフレームワークはReactとVueしかない。Vueの方が少し簡単なのでこちらを選んだが、JavaScriptをしっかり理解しているなら大差は無い。

フロントエンドには膨大なパッケージ群があって全部覚えるのは大変だが、とりあえずまずはVue完璧に使えればいい。Webpackの設定などは既存のものを流用すればいい。



基本的アルゴリズムを学ぶ

アルゴリズムは全てのコンピュータ技術の基礎であり、絶対に知っていなければならない。

高速フーリエ変換のような高度な数学必要ないが、クイックソート木構造のような基本的アルゴリズムは当然、その性質を知っていなければならない。

それらは言語組み込み関数や標準ライブラリでも使われており、理解していなければ、それらの機能を正しく使うことができない。

また、プログラムを読み書きする際には、そのコード計算量を見積もれなければならない。

セキュリティを学ぶ

セキュリティは言うまでもなく学ばなければならない。

有名な脆弱性攻撃手法XSSSQLインジェクション・CSRFなど)が何だか理解していて、その対策実装できなければならない。

各種暗号化技術署名などについても、実装の詳細は知らなくていいが、共通鍵暗号や公開鍵暗号などの特性理解する必要がある。

認証パスワード管理などを実装する際は、当然ベストプラクティスに従わなければならない。

2020-12-09

anond:20201209112427

CSRFは社外からでも攻撃されるよ

はぁ?どうやって社外から攻撃URLを知ることができるんですかね~?

どういう前提で攻撃が発生することを想定しているんですかー?それってあなた妄想じゃないですか?

その攻撃対象のURLを知ることができる時点で、直接その攻撃者がURL実行できる環境(具体的にはLAN内)に存在しているので

意味ね~だろ。

バカすぎる。ガチ自分な何言ってるのかするら理解してないの????やば

anond:20201208173046

CSRFは社外からでも攻撃されるよー。

攻撃フォームを社外のどこかに設置しておき、ログイン状態管理者にそれを踏ませればOK

ま、URLとその機能を知っていないと、攻撃フォームを作れないわけだが。

2020-12-08

削除URL踏んだ話について

https://qiita.com/HirotoKagotani/items/181052eb85b686783806

なんか微妙ブコメちょいちょいある…

なんでGET

まぁわかる。糞実装すぎる。でも引き継いだ人に言うことではないでしょう。

POSTだと事故

少なくとも今回のURL補完&直接アクセス問題は起こらなかった。

規模的にも会社内で使っているだけのシステムから別にPOSTに直すだけで問題解決する。

しかブラウザ機能でPOST再送も可能だけど、一年に一回しか実行しないURLのPOST再送が、登録データが溜まった頃に発生してしまうなんてシチュエーションはどだい考えつかない。一年間も削除完了しましたページのタブを温存し続けるとか?

たまたまそのタブをクリックしてPOST再送しますか?のダイアログに「はい」するの?その発生ケース本気で言ってる?ありえないだろ…

コンテキスト無視して一般論でドヤってんじゃねーよ。一般公開するシステムなら当然POSTにすれば問題解決なんて言語道断だが、システムがなんのためにどこで誰に寄って使われるかぐらい把握しろよ。杓子定規すぎるだろ

CSRF

会社内でしか動いてないシステムハッキングもクソもなく、LAN内に入られた時点でうんこセキュリティです。

なので考慮する必要ない。

社内だから適当に作って〜って言われたら、気を抜いちゃう自分も似たいようなの作ってしまたかもしれない。

人類が最低限、書き込み処理はPOST(or PUT DELETE)、読み込み系はGET、みたいなのだけでも切り分けておけば、平和になりそうだけど、人類基本的に愚かなので、悲しい事件は減らないだろうな

2020-10-05

[]2020年10月4日日曜日増田

時間記事文字数文字数平均文字数中央値
0010712274114.751
017712458161.852
02667284110.445.5
03334569138.553
0481791223.966
05195236275.673
06123032252.798
0732170353.237.5
0855430378.239
09106929487.752
10758919118.960
1115016923112.840
12112915781.844.5
1310012595126.045.5
14105943089.849
15747506101.455.5
161541491096.856.5
1719929492148.269
1816724119144.455
1916519860120.456
201671394683.552
211391277491.927
2215119866131.641
2320225060124.148.5
1日2475286501115.849

本日の急増単語 ()内の数字単語が含まれ記事

CSRF(6), アルゴ(3), ホワイトシチュー(3), テネット(3), 雑事(3), 一夫多妻(21), 結果発表(5), 日本学術会議(4), 有刺鉄線(3), 一夫多妻制(8), 改姓(5), 雄(22), 清掃(10), セックスレス(8), 姓(7), 50代(12), 救済(13), for(10), 喪女(7), ハマる(8), 職歴(6), post(12), 穏やか(12), 1億(9), 産まれ(14), 女児(11), blog(14), 産ま(9), 選べる(8), 出産(20), 発狂(16), 非モテ(13), m(13), 美人(23), 優れ(12), 夫婦(19), 夫(26), 育児(15), 奥さん(12)

頻出トラックバック先 ()内の数字は被トラックバック件数

詐欺まがいのAIベンチャーを辞めた人の話 /20201004132406(19), ■フェミ発狂する心理 /20201004095148(17), ■結婚して妻の姓になり7年がたった /20201004004630(13), ■生活保護受給者タバコ吸うって悪いことなんかな?? /20201003151701(12), ■調味料かけると意識高い系に思われるのが癪 /20201004121920(11), ■ぶっちゃけITエンジニアで稼げるかどうかなんて運 /20201004173050(9), ■30歳すぎて中卒無職ひきこもりなんだけど /20201004062336(9), ■ /20201004121756(9), ■今月の固定収支について /20201004121140(8), ■anond20201003151701 /20201003152413(7), (タイトル不明) /20111003232937(6), ■有刺鉄線の謎 /20201002193547(6), ■豆腐はなぜ足が遅くなったの? /20201003195942(6), ■舐めてもいいもの /20201004000054(6), ■同人誌作ってたおばさんのとある反省文 /20201004102342(6), ■ちょっと聞きたい /20201004201652(6), ■やればできる,ってマジだからな /20201004115359(5), ■子どもを産みたくない /20201004090539(5), ■ /20201004015624(5), ■え、フェミニストって本気で「モノ扱いされない・消費されない」社会が来ると思ってるの? /20201003230118(5), ■ /20201003213040(5), ■anond20201004141831 /20201004160036(5), ■フェミニストの言い分だと /20201004162325(5), ■ネトウヨって差別用語なん? /20201004171222(5), ■ダイの大冒険規制しろアニメ放映してる場合じゃねぇから /20201003212041(5), ■ /20201004181503(5), ■カツオブシに代わる出汁 /20201004222039(5), ■増田にすら他人個人情報を探るやつがいて怖い /20201004115014(5)

2020-10-04

anond:20201004144833

と思うじゃん、ベストアンサーへの指摘でotnさんも

改竄できるのはあくまリクエストを投げる人であって、CSRF攻撃を仕掛ける人では無い

とあるので、当時でもすでに出来ないと思う。(せいぜい4年前だし)

CSRF周辺の情報なんか、訳知り顔で語ってる記事多い割には、本質を整理出来てる記事あんまり見かけなくて

それこそセキュリティありがちな「おまじない」的対処に終止してる感じが漂ってくるんだよね。

とにかくパスワードは定期的に変えなさい。みたいな盲信に見える。

もちろんトークン使う方法は確実だし、ユーザーリファラ送信しろコラ!とか怒らなくていいし、うまく使えば多重送信制御にも使えるから使いやすいけど、

CSRF対策=トークン必ず使う!みたいな思い込みを見かけると、本当にそのセキュリティ対策どういう仕組で必要とされてるのか、どのように作用してるのか、そういったことを理解してる?ってなる。

CSRF目的リファラー改ざんするの不可能

https://teratail.com/questions/26966

古い記事コメントに突っ込むのも野暮ですけど、

仕掛ける側が、自サイト飛ばしJavaScriptFlashリファラを書き換え送信したら、リクエスト強要ができてしまます(=攻撃者がリクエストを投げる人になる)

あくまもリファラだけのチェックでは足りない。ということが言いたいことです

Flashは死んだので考える必要無いとして、JavaScriptリファラを書き換えて任意サイト送信することはできるとか本当か?

ちょっと調べた感じだと最新ブラウザでは完全に塞がれているので、無理だと思う。

アドオンなら専用APIを使ってリクエストプロキシーみたいな処理を割り込ませて、ヘッダー書き換えて送信する機能が作れるっぽいけど、

そんなのヤバいアドオンを入れちゃった時点でCSRF無関係セキュリティヤバいのでサーバー側は想定する意味ないです。

やっぱりCSRFを実行させるためにリファラーを改ざんするの不可能な気がするので、リファラーのチェックだけでCSRF対応できる気がする。

もちろんユーザー自分リファラ送信拒否する場合はあるけど、「うちのサービス使うならリファラ出せコラ」ってエラー出しとき問題ないだろ。

CSRF対策ググるトークン使った方法ばっかり出てくるけど、別にそこまでやらなくてもいいのでは?って感じする。

CSRFを警戒するってことは変な情報をsubmitされたくないだろうし、submitを受け付けるAPIはPOSTとかで受け付けてるだろうし、

いきなり知らないURLリファラ持っている(つまり外部サイトの)POSTリクエストとかが飛んできてる時点で、全部ヤバいので拒否っとけばいいんじゃねーの?

外部からブラウザ上でユーザーの処理にちょっかい出してリファラ偽装してPOSTリクエストする処理は出来ない(ブラウザ禁止されてる)ので、CSRF攻撃は防げる。

という認識なんだけど、どうなんだろう。

anond:20201004113602

CSRF対策実装内容によるのでなんとも

弱いけどリファラ見るだけの対策もあるし、それだと連投とか関係ない

anond:20201004112921

なぜCSRFの話、セキュリティ言及してるわけじゃない。

流石にやってるのでは?増田攻撃とかやる気もしないし、そも犯罪から試そうとも思わないけど

2020-10-03

anond:20201003213855

仰ることはわかりますよ。フレームワークを使いこなしているだけで、言語理論を知った気になっているという指摘はわかります

しかしながら現実問題、大多数が使っているフレームワークを使わないと CSRFSQL インジェクションといった脆弱性に対して低コストで応対できる方法がありますか?まさか WAF でどうにかなるなんて、言いませんよね。今どきフルスクラッチアプリ作れ、なんて逆に技術力がないとしか聞こえませんが。

ぶっちゃけ RubyPHP なんて、クライアントサーバデータを低コストで受け渡すだけのツールしか思ってないわ。RDB や S3 といったドメインストレージにより近いなにかだし、iOS/Android/ブラウザたかSwift/Java/HTML+CSS+JavaScript をいじるだけじゃねーか。ウェブ領域セキュリティ気にしないと死ぬから、むしろメンテされているフレームワーク更新し続けないと死ぬんだよ。自作メンテしてないフレームワークを利用する方が気がふれているとしか思えませんがね。

2020-05-21

anond:20200521175300

Twitter作ればいいじゃん。

ルーティングバリデーション、セッション管理CSRF対策とか、モデル→ビューモデル→ビューへの受け渡しや、SPA的な機能などを実現できれば

それで仕事になるよ。

全体を自分ゼロから高速で作れるようにしておけばベスト

ていうか、俺プログラマになったけど、思ってたより技術レベル低いんよ。

マジでおどろくよ。

2019-11-07

同じ内容の連続投稿おおいな

CSRF受けてる?

2019-07-06

7payのセキュリティ審査って何をやってたんだろうか

ここ連日騒がれている7pay。

パスワードリセットリンク送付先のメールアドレスに対して設計上の問題脆弱性が発覚して大変な事態に発展しています

昨日の会見では社長ITリテラシ不足が露呈したり、サービス継続が表明されたりして、いわゆる「祭」の様相を呈しています

また、会見内で「セキュリティ審査実施した」と明言がされました。

https://www.asahi.com/articles/ASM745HHHM74ULFA01Y.html

セキュリティ審査実施していたにも関わらず、何故今回の問題が見逃されたのか。

非常に稚拙な推測ですが個人的に考えられる可能性をまとめてみようかなと思います

セキュリティ審査とは

その名の通り、サービスローンチ前に実施する、脆弱性問題がないか審査の事・・・だと解釈しました。

審査」というとISMS辺りを連想しちゃいますね。

一般的には脆弱性診断とかセキュリティ検査とも呼ばれています。私はこちらの呼び方の方がしっくりきます

以後脆弱性診断と記載していきます

実施した」とはいっても、どういった内容を実施たかはわかりません。

ただ、7payは「一般に公開する」「お金を扱うサービス」になるため、ガチガチ脆弱性診断を実施すべきでしょうし、実際に実施したのではないかと思います

通常、脆弱性診断というと、以下のような項目があげられると思います

抜け漏れあると思うけど、大体どこのセキュリティベンダーでも上記のような項目を診断しているんじゃないかなあと思います

詳しくは各ベンダの診断内容のページを見てみると更に詳しく載っています

LAC、CyberDefence、NRIセキュア、ブロードバンドセキュリティスプラウトなど。

ただ、今回の脆弱性診断が外部ベンダ実施されたのか、内部で実施されたのかはわかりません。

以下、推測をつらつら書いていきます

外部ベンダ発注したが、コスト削減のために対象を削りまくった

脆弱性診断はモノによりますが、診断内容をマシマシにするとエラい額が掛かります

Webサービス診断は見積もり方法が各社違ったり、ツールを使うか手動とするかによって金額も大きく変わってきます

また、数量計算ベンダによってまちまちです。ページ単位であったり、画面遷移単位であったり、SPAであればAPI単位であったり、複合での計算だったりします。

お願いすれば見積もり時にステージング環境で動いているWebサービスクロールして、各ページの評価を付けてくれるベンダもあります

規模と見積もり内容にもよりますが、100~200万といったところでしょうか。

スマホアプリ診断は一本幾らという場合が多いような気がしますね。相場としては50万~100万程度でしょうか。

プラットフォーム診断も内容によるとは思いますが、大体100万くらいかなあと思います

これ以外にWebSocketを使っていたり、別のサービス連携していたりするとその辺りの通信も含まれてくるのでまた金額は上がる可能性もあります

Webサービス200万、スマホアプリ(iOSAndroid)100万*2、プラットフォーム100万とすると、500万円掛かるわけですね。

脆弱性診断をするだけでこれだけのお金が吹っ飛んでしまうわけです。

そしてこれをそのまま発注するかと言われると、多分しないでしょう。

セキュリティお金が掛かる割にリターンが少なく、目に見える結果が必ず出てくるとも限りません。

経営層は中々首を縦には振らないでしょう。

会見でも明らかになったことですが、社長ITリテラシはあまり高そうにありません。

こうなると脆弱性診断の稟議を通すのは中々容易ではなかった可能性もありそうです。

また7月1日に間に合わせたようなところもあるっぽい(?)ので、開発側に資金を全振りしていた可能性もあり、診断に費用を掛けられなかったのかもしれません。

いずれにせよ、全く実施しないのはまずいし重要そうな部分だけピックアップして実施しましょうという話にはなるでしょう。

削れるものをあげていってみましょう。

例えば、iOSスマホアプリ実施しなくても良いかもしれません。iOS上で動くアプリは確かサンドボックス構造になっているはずで、ローカルに何かしらのデータを持っていても外部からアクセスは基本不可であるためです。確か。

そもそもスマホアプリ自体不要かもしれません。7payのサービスへのアクセスインターフェイスとしてのアプリしか提供していないのであれば、取り扱うデータほとんどないと考えられるためです。そのため、スマホアプリAndroidのみ、もしくは両方実施しなくても大きな問題は発生しないのではないかと思います

・・・この辺り私の勘違いというか、「最優先でやるべきだろjk」といった考えがあれば指摘ください。

プラットフォームも、ベンダによります実施しなくとも良いとも思います

ベンダ説明でも、主にポートスキャンをして、空いているポートに対してtelnetで色々したりするといった説明がなされたと思います

Webサービスなら443と、空いていても80くらいしか外部には公開していないので、これは実施しないという選択をしても不思議ではないと思います

サーバコンフィグも、DocumentRootがおかしいとか致命的な設定ミスをしていない限りは見てもらう必要はないでしょう。

そもそも構築手順等はノウハウもあるでしょうし、わざわざ見てもらう必要性はほとんどないわけです。

ワイドショーでは「不正海外IPからで、国外からアクセス許可していた」事が取り上げられていましたが、例えプラットフォーム診断をしていても、この辺りは指摘されなかった可能性があります

実施していればもしかしたら備考レベルでの注意や、口頭で「国内のみに留めておいた方がいいかも」といったことは伝えられたかもしれませんが、「利便性」という観点から実行されることはなかったんじゃないかなと思います

Webサービスですが、ログインログアウト処理は必須でしょう。また、新規登録情報変更、退会処理も重要です。

パスワードリセットどうでしょうか。正直これも重要です。なので、ベンダに依頼するにあたってはここも診断対象としていたはずです。

ところで今回の件では協力会社について様々な憶測が飛んでいますが、NRI説が結構人気みたいです。

ただ、NRIにはNRIセキュアというセキュリティに特化した子会社存在しています

もし脆弱性診断をするとなった場合、そこを使わないという手はあまり考えられません。そもそも発注時にそれを見越して診断費も開発の見積もりに含まれているのではないかと思います

ただし、セブン側が「脆弱性診断はこちら側で発注します」と言っていれば話は別です。

NRIセキュアは診断費用が高いらしいので、コストダウンするために別ベンダに診断部分のみ発注する可能性はあります

別のベンダ発注したことで、抜け落ちた可能性はゼロではないかもしれません。

また、NRIセキュアが実施する場合においても、「ここは抑えておいた方が良い」という機能毎やページ毎にランク付けした資料セブン側に提出することと思われますが、どこを実施してどこを削るかの最終的な判断セブンに委ねられます

考えられる事としてはパスワードリセットの処理を診断対象外としたことですが・・・そうする理由もわからないので、うーん・・・

ただ、こうして対象を削りまくることで100万程度、もしくはそれ以下まで診断費用を抑えることができます

特定ベンダと、ツールを用いた定期診断を実施してもらう契約をしていた

この可能性もあるのかなと思います

使ったことはありませんが、SecurityBlanket 365というサービス自動での定期診断が可能なようです。

ライセンスやどういった動き方をするのかはいまいちわかりませんが、ベンダ逐次依頼する脆弱性診断よりかは安く済むはずです。

ただ、自動診断となると設計上の不備やそれに伴う問題は検出できないはずです。

ツールの手が届く範囲での、XSSPoC、ヘッダの有無など、ごく一般的脆弱性診断になると考えられます

でも手軽そうで安価っぽいなので、これで済ませていても不思議ではないです。

セブン内部でツールを用いた診断を実施していた

脆弱性診断ツールOSSのものもあればベンダ販売していたり、SaaS提供しているものもあります

OSSならOWASP ZAPやw3afがWebサービスの診断が可能です。また、phpcs-security-auditなど、ソースコードを解析し脆弱な箇所がないかを診断するものもあります

ちなみにWebサービスに対する診断を「DAST」、ソースコードに対する診断を「SAST」と言ったりします。

有償のものとなると、DASTは先程のSecurityBlanket、AppScan、Nessus、Vex、VAddyが挙げられると思います

SASTになると、RIPS TECH、Contrast Securityなどでしょうか。

上記のようなツールを用いて、セブン内で脆弱性診断を実施することでセキュリティの知見を高めたり、内部で完結させるための動きを取っていたかもしれません。

こういった動きは結構色んな組織で見受けられます。外部の手を借りずに診断ができれば、関係者間の調整も楽ですし、それと比べると費用も安く済みますからね。

ただし、社内のエンジニアに任せる事になるため、片手間になってしま可能性があります

また、ツール使用方法についてのノウハウは溜まるかもしれませんが、それとセキュリティの知見が溜まるかどうかは別の問題としてあると思います

・・・とは言ってもセブンにはCSIRT部隊ちゃんとあるんですよね。

https://www.nca.gr.jp/member/7icsirt.html

『7&i CSIRT は、7&i グループCSIRT として設置され、グループ企業に対してサービス提供しています。』と記載があります

また、『7&i CSIRT は、7&i HLDGS. の組織内に専任要員を以て設置され、インシデント発生時の対応だけでなく、インシデント発生の未然防止にも注力しています

グループ企業情報システム部門と連携し、7&i グループ内で発生するインシデントに対する未然防止のための調査分析リスク情報の共有、ならびにインシデント対応活動を行なっています。』

という記載もあるため、今回の7payも、7&i CSIRTが動いてセキュリティ関連のチェックをしていたのではないかと思います。「情報システム部門」とはありますが。

組織図上にはありませんが、デジタル推進戦略本部の下か、リスクマネジメント委員会情報管理委員会のどこかに所属しているんじゃないかと思われます

日本CSIRT協議会にも名を連ねているわけですし、CSIRTメンバー専任要因ともありますし、セキュリティ関連の技術知識は十二分にあると思うんですよね。

なので、内部でツールを使って実施していたからといって、こんな重大な不備を見逃すというのはちょっと考え辛いなあ・・・と思います

会見内で言われた二段階認証検討事項に上がらなかったのかなあ・・・と。

まあ、今でも機能しているのであれば、の話ではありますが。

で、これを書いている最中に気付いたのですが以下のようなリリースが出ていたんですね。

https://www.7pay.co.jp/news/news_20190705_01.pdf

これを見ると内部のCSIRT機能していなかったか力不足判断されたかどちらかになるのかな・・・と。

実際はどうだかわかりませんけど・・・

診断を実施したがどこかで抜け落ちた

これも有り得る話かなあ・・・と。

関係者が多いと情報共有にも一苦労です。

開発やベンダCSIRT部隊情報共有したとしても、POが忘れていたとか、伝えたつもりが曖昧表現で伝わっていなかったとか・・・

ベンダ実施して指摘事項として伝えていたけど、いつの間にやら抜け落ちていてそのままサービスイン・・・というのもシナリオとしては考えられますね。

問題認識していたが上申しなかった/できなかった

7payは社内的にも一大プロジェクトだったはずで、スケジュールも決まっている場合、余計なことを物申すと手戻りや対応時間を取られることになります

そういった事を許さな空気が出来上がっていると、まあ中々上には上がってきづらいです。

これも十分にありえる話ですかね。ないといいんですけど。

セキュリティ審査自体が、情報セキュリティ基本方針個人情報保護方針に沿った内容かどうかを確かめただけだった

どうしても『審査』という言葉に引っかかっています。『検査』ならまだわかるんですが。

そこで思ったのですが、情報セキュリティ基本方針個人情報保護方針を元にしたチェックリストのようなものセブン内にあって、それを埋めた・・・みたいなことを「セキュリティ審査」と言っていたりするのかなと思ってしまったんですね。

でもこれはセブンペイの社長個人情報保護管理責任者ということで、ISMSPMS等で慣れ親しんだ単語である審査』を使っただけかもしれません。

そもそもそれで終わらせるなんて事ないでしょう。セブン程の企業・・・

そもそもやってない

大穴ですね。いやこれはないと思いますよ。あったら大問題じゃないですか・・・

というわけで、なんとなく「こうだったりして・・・」みたいな事をつらつら書いてみました。

そういえばomni7で以下のお知らせが上がっていましたね。

https://www.omni7.jp/general/static/info190705

『定期的にパスワードを変更いただきますようお願い申し上げます。』とのことです。CSIRTはもしかしたらもう機能していないのかもしれないですね。

もしくはわかりやす対策提示しろと言われたのかもしれません。それなら仕方ないんですけど。

パスワード定期変更を推奨する因習はいつ消えるんでしょうか。

以上。

以下追記 2019-09-08

一部typoとか指摘事項を修正しました(役不足力不足 etc)。

ついでに時間経ってるけど追記します。もう誰も見ないでしょうけど。

所詮「人のつくりしもの」だよ

監査なんて取り揃えた書類通りになっているかどうかなので、監査受けているかセキュリティ的に大丈夫ってことじゃないよ

そんなに監査が万能なら監査できるくらいの人が作り出せば完璧になるはずだろ

ちゃんと読んでいただけましたか?全文通して私の主張が「監査をしっかりやれば防げた」という意味と捉えられているのでしょうか。そんなに分かりづらい文章を書いた覚えもないのですが・・・

一番上でも記載していますが、私は今回の7payの「セキュリティ審査」は、「脆弱性問題がないか審査の事」、つまり脆弱性診断」を指していると仮定して本エントリを書いています

そういう意味で、ここで私が指している「審査」と貴方が指している「監査」は似て非なるものです。字面は少し似ていますがね。

監査貴方記載する通り「ある事象対象に関し、遵守すべき法令社内規程などの規準に照らして、業務成果物がそれらに則っているかどうかの証拠収集し、その証拠に基づいて、監査対象有効性を利害関係者に合理的保証すること」です。

貴方の言う「監査」に近いことは「セキュリティ審査自体が、情報セキュリティ基本方針個人情報保護方針に沿った内容かどうかを確かめただけだった」の見出し部分で触れていますが、それで終わらせているわ Permalink | 記事への反応(2) | 05:48

2019-04-02

いま、この「自分の全記事を一括削除するスクリプト」は動かない?

anond:20130927152907

いま、この「はてな匿名ダイアリー自分の全記事を一括削除するスクリプト」は、動かない?

httphttps、URL などは、適切に直した。

・POSTに与える最後csrf を取ってくる parse が間違って、 rkm= が空になっている。正規表現parse していたのを直して、 o+XXXXXXXXXXXXXXX/g を拾ってくるようにした。

・POSTに与える delete=が元々の %8d%ed%8f%9c%82%b7%82%e9 でも削除できないし、「 %e5%89%8a%e9%99%a4%e3%81%99%e3%82%8b 」でも削除できなかったし、これってマジックナンバーなん?

2018-08-04

普段使ってるサイトCSRF脆弱性を見つけた

IPAに届け出たら一週間くらいで修正されてた。

でも明らかに軽微な脆弱性だったから直接サイトに問い合わせたほうがよかったのかわからん

IPAの届出フォームも複雑で一度挫けかけたし素人には難しいわ。

2018-04-29

anond:20180429125147

こんにちは元増田です!

増田も大歓迎です!貴重なご意見ありがとうございます

荒らし対策については、実はあまり考えてません!

もちろん、CSRFとかXSSとかDos攻撃とか、セキュリティ上最低限の対策は取るつもりですが、それ以外は良いね/悪いねの数で投稿を大きくしたり小さくしたり、ユーザー側で一日限りのidを毎回弾いてもらったりとか、「どっかで見たなそれ」的なことしか考えてません!

なるべく投稿の敷居を下げたいという思いがあるのと、あとは何より、アカウント情報管理がめんどくさい!のです…

Twitter連携とかも今は簡単にできちゃうんですが、やりません!

はいえ万が一軌道に乗るなんてことがあれば、アカウント制については考えなきゃいけない時期が来るだろうなとも思ってます

そんな感じです!

2018-03-20

文系エンジニアなんて死ねばいいのに

文系エンジニアなんて死ねばいいのに

俺、Webサービス作ったんすよ(Rails

俺、iOSアプリ作ったんすよ(Swift

俺、Macbook使ってるんすよ(タッチバー付13インチPro

俺、プログラミングスクールプログラミング教えるアルバイトしてるんすよ(そいつはそのスクール卒業生

これぞ量産型文系エンジニア()

懇親会で「皆さん嫌いな言語とかフレームワークはありますか?」と話題になると私は即座にRailsと言う。

すると文系エンジニアはみんな嫌な顔をする。

そこでちょっとお話をすると皆怯んじゃう。

「あのコマンドを打つと中で何が起きてるか知ってますか?」(知らない

ActiveRecord?生でクエリいたことあるインデックス意味くらい知ってるよね?」(書いたことない、適当なこと言う

へーその作ったサービスURL教えてよ

3分

「alert('XSS')」

Session?Cookie?(何それどんな味のクッキー

CSRF?(企業理念か何か?

百歩譲って学生エンジニアならまあセキュリティ無知なのは分かる。

しかしだな、文系エンジニアは「俺もハッキングしたい(笑)」な勢いで詳しく解説することを要求してくる。非常にウザい。

"

お前はよぉ!自分で探すってことをできねぇのかよ!?

"

しょうがないので優しく解説すると「君ってハッキングとかしてそう(笑)」「君将来ハッカーになりそうだわ(笑)クラッキング的な意味で)」

死ねよ。

文系エンジニアはこれだけではない

俺、Git使って開発したんすよ(GUIのSourcetree

え?バグちゃんテストしたんだけどなぁ(完全手動テスト()

デプロイ先は9割Heroku。(HTTPS対応

AWSGCP登録はしたものの使い方が分からなくて結局放置

SSH証明書を使わずパスワードオンリー

pwdcdしか知らない(Makefileを作ったことないからいつもネットコピペコマンド

見た目重視のTerminal(ネットコピペ設定)

最近聞いた文系エンジニアもっと面白い

新規事業を開発してる文系エンジニア集団がいた。

開発は順調、プロモーションをかけていざリリース

はいゴールデンタイム鯖落ち。復旧した時にはゴールデンタイム終了のお知らせ

理由CDNを刺してない、貧弱なプランの鯖(勿論ロードバランサなんか使ってない)

噂による無線LANルーターの設定も出来ないレベルらしい。

でも彼らは一応優秀な文系エンジニア高学歴サービスも作ったこともある、それなりの実績も持っている。しか文系だ。

こういう奴らがいるかちゃんとしたエンジニアを軽視される。黙って営業職に転職してこい。

まあでも大学じゃ作者の気持ちしか考えてないのだから当然のなのかもな(笑)


追記

残念な理系名前を書くだけ一発採用派遣SIer対象としてない。論外だ。

給料が安い?

そんなことは無い。400万以上貰える会社内定もらっているか嫉妬も不満も特に無い。

だがしかし、ムカつく。

そんな奴が同期にいたら蹴り飛ばしてやりたくなる。

そうさ、今はSwiftiOS時代だ。

だが見てみろ、あいつらのアプリバックエンドが無いんだぞ?意欲は認める。だがそれで胸を張ってiOSエンジニアなんて無理があるだろ?

2017-01-20

短縮URL使う人が気持ち悪い

URLでググっても中身がわからいかCSRFみたいなのを警戒する

アングラ系の掲示板でもないのに短縮URL使う人って何を意図してるの

2016-09-03

http://anond.hatelabo.jp/20160902031012

http://anond.hatelabo.jp/20160902031012

はてブ批判してる人たちよりよほど志のある学生さんだと思うので、いろいろ書いてみますおっさんのたわ言ではありますが、元記事の人にすこしでもヒントになればと思って。

大学に行っても実用的なソフトウェアを書けるようにはならない

実務の話!! 実際に「IT系のおしごと」というのがやってるような話で、特にコーディングに直接絡んでくるようなもの

技術実態みたいなやつ。そういうのは学校で教わらないんですよね。

まず、日本大学勉強しても実用的なソフトウェアが書けるようにはなりません。どういうことかというと、「情報系の大学に行けば○○が作れるようになる!」という世間一般の期待と、実際に大学で教えている内容には大きなギャップがあるということです。

これは大学が悪いのではなく、大学はそもそもそういうものであって、それが世間認知されてないというだけです。

具体的に挙げてみましょう。

大学で教えてる内容ってこんな感じなので、ゲームアプリサービスを作ることが目的の人から見ると、役に立たない内容にしか見えませんし、実際たいして役に立ちません。その証拠に、大学情報学科を出ていないのにゲームiOSアプリWebサービスを作っている人はゴマンといるし、逆に日本大学先生ゲームiOSアプリWebサービスを作れる人はほとんどいません。

日本大学先生実用的なアプリサービスを作った経験がない

これは重要ことなのでもう一度書きますが、日本大学先生ゲームアプリサービスを作れる人はほとんどいません。大学先生が得意なのはプログラムを書くことではなく論文を書くことです。論文のためにプログラムを書くことはありますが、あくまでおまけです。

そのため、大学勉強してもゲームアプリサービスが作れるようにはなりません。だって教えている側の先生が、ゲームアプリサービスを作ったこともなければ、作り方も知らないんだから

そういう経験のない人たちばかりですよ、日本大学先生って。そんな人たちの授業を受けて、アプリサービスが作れるようになると思うほうがおかしいでしょう。

ためしに、先生方のTwitterアカウント名でGithub検索してみてください。いまどきGithubアカウントがないとか、あったとしてもTestCaseすらないコードとか、そんなものばかりです。「研究内容をライバルに知られるわけにはいかないかGithubは使わない」という言い訳する人がいそう。けど、本当はGitが使えないだけでしょ?

あるいは、先生方の個人ページや研究室の紹介ページを開いて、HTMLソースを見てみてください。doctype宣言がないとか、viewportの指定がないとか、Pタグの中にULタグを使ってるとか、そんなのばかりです。HTMLすらろくに書けない人が、Webアプリを作れると思いますか?きっとXSSCSRFも知らないですよ。

ですので、そういうことを勉強したいなら、ベンチャーIT系企業に入るべきです。大学でそういうことを勉強しようとしても、教えられる人がいないから無理。
(「大学はそんなことを教える場所ではない!」と怒る人いると思うけど、教えられる先生がいないという事実ごまかすために怒ってるだけだから。)

ジャンルが違う

はいっても、大学先生プログラムがいっさい書けないというわけではないです。彼らが得意なのはコンパイラインタプリタOSやソルバを作ることです。これらも実用的なソフトウェアと言えなくはありませんが、ゲームアプリサービスとはジャンルが大きく違います

そのため、大学情報学科に進めばコンパイラOS機械学習ライブラリを書けるようにはなるかもしれませんが、それはゲームアプリサービスではないので、繰り返しになりますがそれらを作りたい人には大学は向きません。

大学で教えている内容ってムダなのか

じゃあ大学で授業を受けるのってムダなのかというと、必ずしもそうではないです。

大学で教えている内容って、ゲームiOSアプリWebサービスが一通り作れるようになってから、その先を目指すときになって初めて必要になることが多いです。たとえば、

こういうときになって、初めて大学で教わった内容が生きてきます。逆にいうと、そういう状況にならないと、大学で教わった内容は生きてこないと言えます。(情報系の学科で学んでいるなら、ライブラリ言語OSを「使う人」ではなく「作る人」にぜひともなってほしいですね。)

元増田に進めたい進路

元増田は、社会に役立つ実用的なソフトウェアを作りたいようです。しかし残念なことに、大学が教えている内容はその目的には合致していないことを説明しました。

こういう事情なので、元増田には大学ドロップアウトしてIT系会社入社することをお勧めします。ドロップアウトが難しいなら、インターンバイトでなんとしても入り込むことです。

入るべき会社は、教育に力を入れている会社です。20人未満の小さな会社では教育に力を入れている余裕はないので、小さな会社はやめたほうがいいです。簡単にぐぐってみたところ、はてなPixivクックパッドDeNAドワンゴ教育制度確立しているようです(違ってたらごめん)。そういった会社に入ったほうが、大学の授業を受けるよりも、元増田目的にかなうのは間違いありません。

そして何年か働いて、iOSアプリWebサービスが一通り作れるようになったら、大学に入り直すことです。これはとても効果的なので、元増田には強くお勧めします。

上で説明したように、大学というところは、ゲームアプリサービスの作り方は教えてくれず、それらが作れるようになって初めて役に立つことを教えてくれます。そのため、元増田IT系会社に入ってアプリサービスの作り方を勉強し、それらが作れるようになってから再度大学の門をたたくのが、いちばん効率的です。

なお繰り返しますが、入るべき会社は「教育に力を入れている会社」です。今のIT系企業では、インターン生を「格安で使えるバイト君」としか見なしていない会社が多すぎます。そういう会社は、コストが掛かることはいやがるので、教育もろくにはしてくれません。逆に教育に力を入れている会社では、インターン制度を「将来の戦力を選別する期間」と見なしています

残念ながら、そういう会社東京に集中しているようです。例外京都はてなくらいでしょうか。地方大学生にとってはつらい現実なので、はてなPixivドワンゴ地方でのインターン開催をお願いします。あとレベル5は九大と九工大学生を鍛えてあげてください。

余談ですが、学生さんにひとこと:

インターンバイトで潜り込む先の会社を選ぶときは、就活と同じような時間をかけて選んでください。バイトからとかインターンからという軽い気持ち会社を選ぶ大学生が多いから、それを食い物にしている悪質経営者があとを立ちません。インターン生が「格安学生バイト」として使われている現状を是正するために、学生のほうでも注意してください。

大学で授業を受けなくても独学で効率的勉強する方法

ドロップアウトを進めた手前、書こうと思ったけど、長すぎるのでやめた。

リツイートが100超えたら書く。

2016-07-25

gitにおけるコミットログ/メッセージ例文集100

私はコミットログの書き方に悩む英語の苦手な人間である。実際、似たような人は世の中に結構いるようで、頻出単語を集計したりまとめたものは既にあって役に立つのだけれど、これらはあくま単語の話であり、具体的な文を構成する過程でやっぱり困る部分がかなりあった。

要するに、どういう時にどういう文が使われているのか、ということを示した例文集が欲しいのであるググると他にも「例文集があればいいのに」みたいな声はあるくせして、しかし誰も作ろうとしない。何なんだお前ら。それじゃ私が楽できないじゃないか

仕方なく自分でまとめたので、増田に垂れ流しておく。

はじめに

ここで挙げているコミットログは全て実際のコミットログから転載である。当然ながら各コミットログ著作権はそれぞれの書き手にある。いずれも各英文でググれば出てくるし、フェアユース範囲なら許してくれるだろうと考え名前プロジェクト名は割愛したが、ここにお詫びと感謝を述べておきたい。

抽出条件だが、参考にできそうなコミットログを多く含んでいそうなリポジトリGitHubSTARの多い方からざっと目で見て適当に選び、それぞれ最新コミットから5000件抽出した(あわせて前処理として、コミットログ冒頭のタグ情報は消去した)。

結果として対象としたリポジトリは以下の通り。

atomのみ5400件抽出していたため、計25400件のコミットログベースである。このうち、以下の条件に合致するものは参考例にすべきでないとして一律排除した。

こうして残った8540件を眺めながら、適当に切り出したのがこの用例集である個人的に「うーんこの」と思った表現も、散見される場合は載せた。

ということで、以下用例を羅列していく。

用例集

オプションフラグメニューを追加した
ファイルを追加した
メソッド機能を追加した
実装を別のものへ切り替えた
  • Use args.resourcePath instead of args.devResourcePath
  • Use arrays instead of while loops
  • Use auto instead of repeating explicit class names
  • Use weak pointer instead of manual bookkeeping
  • Change all uses of 'CInt' to 'Int32' in the SDK overlay
  • Change Integer#year to return a Fixnum instead of a Float to improve consistency
新しく何かに対応した/機能上の制約を取り払った
何かを使うようにした
より好ましい実装に改良した
何かを出来ない/しないようにした
  • Don't bail reading a metadata instance if swift_isaMask isn't available
  • Don't exit until the parent asks for an instance
  • Don't include Parent pointer in Nominal/BoundGeneric TypeRef uniquing
  • Don't use MatchesExtension for matching filters
  • Don't use ES6 class for AutoUpdater windows class
  • Don't use MatchesExtension for matching filters
  • Avoid `distinct` if a subquery has already materialized
  • Avoid infinite recursion when bad values are passed to tz aware fields
オブジェクトの内容や挙動確認やすくした
Assertを追加した
不要コードを除去した
コードを移動した
名前修正した
さなバグタイポ修正した, 警告を潰した
バグや好ましくない挙動修正した
テストコメントドキュメントを追加した
テストを削除した
テストコメント修正した
ドキュメント修正した

表現傾向とまとめ

以上の用例をふまえ、今回の参考ログ8540件から先頭の単語を出現回数で並べると次のようになった。

Add1149
Fix1014
Update584
Remove566
Use382
Don't260
Make228
Move178
Change103
Rename85
Improve76
Avoid68
Allow65
Implement60
Handle58

コミットログの基本形はもちろん動詞 + 名詞である名詞固有名詞複数形、不可算名詞が多いが、単数形場合冠詞は a が使われるか、あるいは省略される。the はまず使われない。

何かを追加した、という表現では非常に広く Add が使われる。メソッドからテストドキュメントに至るまで大概これでまかなえる。

一方、何かを修正した、という表現では広く Fix が使われる。「何か」は typocrash といった単語からメソッド名まで幅広い名詞を取るが、動名詞はあまり取らないのと、that節は取らないのでその点は注意が必要である

Fix は「何かが正しく動くようにした」ことを示し、正しい動作内容が何かを説明しない。そこで正しい動作内容に言及したい場合Make sure が使われる(こちらはthat節が取れる)。ただし Fix よりもニュアンス的に重い表現と思われ、Fix を使わず Make sure ばかり使うのはちょっとキモいのではないかと思う(Ensure はさらに重い表現っぽい)。

また、Fixtypo 以外でのドキュメント修正に対して使われることは稀である。対して Update はドキュメントコメントテストに使われ、本体コード修正に対しては使われない。本体コード修正にあわせてテスト更新したなら Update が使われる。ただ、テスト機構それ自体バグ修正したなら Fix である

無駄な何かを単純に除去したなら Remove を使う。これまでのもの(A)からのもの(B)に切り替えたのであれば Use B instead of A か Change A to B が使われる。新たに何かを利用するようにしたのであれば Use を、利用を取りやめた場合Don't use を使うことが多い。

何かをしないようにしたなら Don't を、内部実装効率化なら Make A + 比較級/形容詞Improve が使われる。

中身の変更を伴わない単なる名前の変更なら Rename A to B、コード機能論理上の場所を移動させたなら Move A to B である

この辺はリファクタリングと呼ばれる行為と思うが、Refactor というぼんやりした動詞はあまり使われず、このように変更内容の種類に応じて動詞が使い分けられている。

余談

コミットログにはWhyを書くべきだ、というのを何かで見かけたので because とか since を使ったログがどの程度あるかを調べたが、8540件のうち22件だった。基本的に短く、シンプルに、一目で意味が取れるログが好まれる傾向がある。例えば get rid of とか2件しか使われておらず、圧倒的に remove である

一方で、シンプル単語だけど開始単語としては使われないものもある。例えば次のような単語である。Expand(9)、Extend(8)、Print(5)、Optimize(5)、Publish(4)、Append(4)、Modify(3)、Manage(2)、Revise(2)、Dump(2)、Insert(2)、Migrate(2)、Enhance(1)、Edit(1) 。いずれもカッコ内は8540件に対する冒頭での登場回数である。結局、より一般的平易な単語で表せたり、Refactor同様に抽象度が高すぎると使われないのだろう。

おわりに

8000件もログを見たおかげで、迷いなくコミットメッセージが思いつくようになったのが個人的には今回書いてて最大の収穫だった。たぶんカンニングペーパーを作る行為それ自体効率のいい学習になるという話と同じだと思う。

このまとめも100以上用例を転載してあるので、それを読むだけでも多少は効果があるんじゃないかと思う。同じようにコミットログ書きたくねぇなぁ英語わっかんねぇなぁと思っている人にとって、何か役に立つところがあれば幸いである。

ログイン ユーザー登録
ようこそ ゲスト さん