既にある、という理由で既にあるコードを信じないほうがいい

息の長いプロダクトのコードを見ていると、「なぜか本番にリリースされていない機能」とか「誰もしらない機能」のコードを見つけることがある。 開発途中で機能が不要になったり、一度リリースした機能を潰したり、といった事情は色々あるがとにかくこのようなコードはたまに見つかる。 さらに退職などの理由でこのようなコードについての背景が誰にもわからなくなっていることもある。

そして、その機能がやはり欲しくなったり、コードを部分的に流用したい、といった場合に、このコードをそのまま使いたくなることがある。

この時、このコードを「既にあるから」という理由で信用したくなる時がある。 これはググったら出てきたコードをよくわからないままコピペしたくなる感覚と似ている気がする。 しかし、コピペはNG、という価値観を持っていても既にあるコードはOK、と判断してしまうことがある気がしている。

「既にあるから」という理由でそのコードを信じてはいけない。 コードの背景がわからないということは、そのコードの品質が担保されているのかわからない、ということである。

品質はテストや本番での動作実績に担保されるが、「既にあること」は品質を担保しない。 プロダクトの品質を担保する基準があるのであれば、「既にあるコード」を利用する場合もそのコードが基準を満たしているか確認する必要がある。 満たしていないのであればテストを追加するなどして、基準を満たす必要がある。 ただし、基準を満たしていて工数の削減につながるのであれば、コードの流用はどんどんするべきだと思う。

AWS Certified Security Specialtyをとったので勉強内容をまとめた

f:id:inabajunmr:20201023002915p:plain

ついで f:id:inabajunmr:20201023002919p:plain

前提知識

コードを書く人的なロールでAWSは触っている が、日常的には触るのはSNS、SQS、DynamoDBくらい とはいえメジャーな?サービスはどういうものなのか?くらいは理解している

後はあそびでEC2立てたりECSタスクかいてアプリをデプロイしたりはする

2017年に以下を取得しているが、ろくにAWS触ってない状態で知識だけ詰め込んだので今受けたらアソシエイトも多分おちる

  • AWS Certified DevOps Engineer - Professional
  • AWS Certified Solutions Architect - Professional

セキュリティ系のサービスはIAMはなんとなくわかるけどほかは全然わからん、くらいの感じ

勉強に使った時間

40時間くらい

やったこと

いろんな合格記で紹介されてるやつとだいたい同じような感じ 流れ的には「資格本1冊読む」→「公式の模試」→「公式のトレーニング(Exam Readiness)」→「BlackBelt読みながらちょくちょくガイドみる」→「公式の模試」→「受験」

ホワイトペーパーは一切読んでない 読んでないので良し悪しがわからん

主にBlackBeltとガイド ガイドは網羅的によむというよりもBlackBelt見てて気になったところを見ていった

実際に動かしてどうこうもしてない(すべき)が、Trusted Advisorのチェック項目はマネコンで眺めたりしていた

要点整理から攻略する『AWS認定 セキュリティ-専門知識』

何したらいいのかわからんのでとりあえず買って読んだ セキュリティ系のサービスそもそもなんなのみたいのがわかる これだけで受かるかというと多分受からない

ADの説明がわかりやすいのと回答付き模擬試験がまあまあなボリュームであるのは嬉しい あとは何の勉強したらいいのリストを作るのに使える が、今考えると別に読まなくてもよかった感はある 回答付きの模擬試験を解きたい人は買おう

Exam Readiness: AWS Certified Security - Specialty

なぜ本を読まなくてもいいかというとこのトレーニングでよさそうだったから 何の勉強したらいいのリストを作るのに使える それ以外はまあなんかいいかなという感じのやつ 回答のコツ、みたいのも紹介されてた気がする

BlackBeltとかガイドとか

Exam Readinessで紹介されてたサービスのBlackBeltを片っ端から読むのが勉強のメイン 実際に読んだやつの一覧は以下 なんか漏れてるかもしれんけどだいたいこれで全部だと思う

時間なくてやろうと思ってたけどスルーしたサービスたち

特にCloudWatchとSecretManagerはスルーしないほうがよさそう スルーした

  • CloudWatch
  • DynamoDB
  • Certificate Manager
  • CFn
  • Shield
  • CloudFront
  • RDS
  • CloudHSM
  • SecretManager
  • Route53
  • SSO
  • Cognito
  • Athena

模試

公式の模試を2回やった 初っ端いきなりやって50パーくらいで次に試験前日にやったら75パーだった かなりギリギリ感 本番のスコアは見方がよくわからないので何パーだかわからん

ふりかえり

いきなりBlackBelt、はそこまで間違ってた感じではないけど動画だと時間かかるので、公式のガイド見てピンとこないやつだけBlackBelt、のが効率いい気がした

ガイドのがわかりやすかったり網羅的だったりおもしろかったりするので ガイド読まなすぎてかなりギリギリだった感ある というかそもそも明らかに試験にでそうなサービスを見切れてないのがまずかった

あとおもしろはんぶんでプラクティショナーも同日にうけた こっちは準備してなくても受かったけどぜんぜん知らん範囲の問題が多かった

とってみてどうだった

AWSのセキュリティにくわしくなったかもしれない

どうして認可コードフローのトークンエンドポイントは redirect_uri を要求するのか

OIDC で redirect_uri の登録と完全一致が必須だという前提で物事を考えていたため、どういう攻撃が成立するのかわからず混乱した。 微妙に確信が持てないので間違ってたらおしえてください。

認可コードフローおさらい

  1. 認可リクエストを送る
    • redirect_uri
    • client_id
    • その他
  2. コールバックで認可コードが redirect_uri に送られてくる
  3. コールバックを受け取ったクライアントはトークンエンドポイントに認可コードを送って、アクセストークンを得る
    • クライアントの認証がある
    • このときに認可リクエストで送信した redirect_uri も送る これなんで必要なのかの話
      • 完全一致してる必要がある

RFC での言及

10.6. 認可コードリダイレクトURIの操作より引用。

認可要求に認可コードグラントタイプを用いるとき, クライアントは redirect_uri パラメーターによりリダイレクトURIを指定できる. 攻撃者がリダイレクトURIの値を操作可能であるとき, 認可サーバーによってリソースオーナーのユーザーエージェントを攻撃者の管理下にあるURIに認可コードを含んだ状態でリダイレクトさせることができる.

攻撃者は, 正しいクライアントにおいてアカウントを作成し, 認可フローを開始することができる. 攻撃者のユーザーエージェントがアクセス許可のために認可サーバーに送られたとき, 攻撃者は正当なクライアントにより提供された認可URIを取得し, クライアントのリダイレクトURIを攻撃者の管理下にあるURIに交換する. 攻撃者はその後, 正当なクライアントに向けた操作された認可アクセスリンクをたどるよう被害者を騙す.

認可サーバーにおいて, 被害者は正当で信頼できるクライアントによる正常で有効なリクエストを促され, そのリクエストを認可する. 被害者はその後, 認可コードとともに攻撃者の管理下にあるエンドポイントにリダイレクトされる. 攻撃者は, クライアントにより提供されたオリジナルのリダイレクトURIを用いて, 認可コードを送ることにより認可フローを完了する. クライアントは認可コードとアクセストークンを交換し, それを攻撃者のクライアントのアカウントと紐づけることで, 被害者により (クライアント経由で) 認可された保護されたリソースへのアクセス権を獲得できる.

このような攻撃を防ぐため, 認可サーバーは認可コードの取得に用いたリダイレクトURIと, 認可コードとアクセストークンの交換時に提供されたリダイレクトURIが同一であることを確認しなければならない (MUST). 認可サーバーはパブリッククライアントに対してリダイレクトURIの登録を要求しなければならず (MUST), コンフィデンシャルクライアントに対してもリダイレクトURIの登録を要求すべきである (SHOULD). リダイレクトURIがリクエストにより提供されたとき, 認可サーバーは登録された値を用いてそれを検証しければならない (MUST).

なんとなく理解した内容

認可リクエストの redirect_uri に攻撃者が管理しているサイトの URI を指定されたときに、認可コードが攻撃者のサイトに飛ぶ。 その認可コードを正規のクライアントにコールバックとして送信すると他人のアクセストークンを保持したクライアントを操作できる。

詳細

認可リクエストに以下のようなパラメーターを指定して、被害者に踏ませる。

client_id=攻撃対象のクライアント&redirect_uri=https://攻撃者のドメイン.example.com

認可コードが https://攻撃者のドメイン.example.com に送られるので、攻撃者は被害者が認可を行った認可コードを手に入れる。

攻撃者はこの認可コードをクライアントの本来の redirect_uri に送信する。 このときトークンエンドポイントが redirect_uri の検証を行っていない場合、クライアントが認可コードとトークンの引き換えに成功する。 認可を行ったのは攻撃者ではなく被害者なので、トークンは被害者に紐付いている。

この状態で攻撃者がリソースサーバーに対して自らのプロフィールを取得する API を利用するような操作を行うと、プロフィールは被害者のものとなり、攻撃者は被害者の個人情報を取得することが出来る。

redirect_uri の検証を行った場合、認可レスポンスを受け取った攻撃対象のクライアントは、トークンエンドポイントに https://攻撃者のドメイン.example.com ではなく https://攻撃対象のドメイン.example.com を送信する。(そもそも攻撃対象のクライアントは攻撃者のredirect_uri を知らない)

こうなると認可リクエストで送信した redirect_uriトークンエンドポイントに送った redirect_uri が別の値になるので、攻撃が失敗する。 ようするに認可リクエストを行ったときに指定した redirect_uri にちゃんとコールバックで認可コードが渡って、その redirect_uri のクライアント自身がトークンリクエストをしているよね?というところが担保できる。

シーケンス

攻撃者が被害者の認可コードを取得

f:id:inabajunmr:20201009233637p:plain

認可リクエストの client_id は正規のクライアントとなる。

攻撃者が被害者に紐付いたアクセストークンを利用

f:id:inabajunmr:20201009233646p:plain

認可コードをアクセストークンに引き換えには

  • クライアント認証
  • 認可コードを発行したクライアントからのトークンリクエス

が必要だが、認可リクエストの client_id が正規のクライアントのものなのでどちらの条件も満たしている。

redirect_uri の検証を行う場合

f:id:inabajunmr:20201009234043p:plain

トークンエンドポイントで redirect_uri の検証をしている場合、認可コードを送信した redirect_uriトークンリクエストを送ってきたクライアントが想定している redirect_uri が異なるので、攻撃を防ぐことが出来る。

RFC6749 ではコンフィデンシャルクライアントの redirect_uri の事前登録を MUSTとしていない

3.1.2.2. 登録要件より引用。

認可サーバーは, 以下のようなクライアントに対してリダイレクトエンドポイントの事前登録を要求すること (MUST): パブリッククライアント. インプリシットグラントタイプを利用するコンフィデンシャルクライアント. 認可サーバーは, すべてのクライアントに対して, 認可エンドポイントアクセス前にリダイレクトURIの事前登録を要求すべきである (SHOULD).

この攻撃は認可コードグラントのみを使うコンフィデンシャルクライアントに対しても有効だが、その場合の redirect_uri の事前登録は MUST ではない。 また、マッチングの条件については以下の記述がある。

認可サーバーは, クライアントに (一部分ではなく) 完全なリダイレクトURIの登録を要求するべきである (SHOULD). (クライアントはリクエスト毎のカスタマイズするために state リクエストパラメーターを使用できる (MAY)) 完全なリダイレクトURIの登録を要求することができない場合, 認可サーバーはURIスキーム, オーソリティー, パス (認可要求の時, リダイレクトURIのクエリーコンポーネントのみ動的に変更を許可する) の登録を要求するべきである (SHOULD).

この SHOULD を守っていない場合、パスに指定した値によってオープンリダイレクタが可能になっていると、redirect_uri を事前登録していてもこの攻撃は成立する気がする。

参考

シーケンス書いてから見直したらまるっきり同じ話だった。

OAuth 2.0 の code は漏れても大丈夫ってホント!? - OAuth.jp

ウェブ・セキュリティ基礎試験(徳丸基礎試験)を受けてきた

開発マネジメントができない人です

f:id:inabajunmr:20201003164822p:plain

試験結果自体は割とどうでも良い感じ

試験予約でつまづく

この試験は受験そのものの難易度が若干高かった 受験の流れは以下

  1. オデッセイID登録
  2. 試験センターを探す
  3. 試験センターのサイトから試験を予約
  4. 試験センターに行って受験

なんだが、3でいくつかのサイトを見た結果、予約時にこの試験を選択できないという問題がおきた

仕方がないので試験センターに電話したところ、そんな試験あるの?みたいな感じであった

それで試験センターの人が試験を発見し、明日までに予約サイト改修しときまーすみたいな感じで通話が終了した

明日まではなかなかすごいなと思った

試験いきなり増えるんですよねー・・・みたいなことを言っていた

試験について

10/4に試験だと思ってたら10/3に試験だったことに試験30分前くらいに気づいて焦った

あとはなんというか、試験の問題はウェブ・セキュリティ基礎試験ではあるものの、ちょくちょくこれはセキュリティの試験じゃなくて徳丸本の試験だなって感じの問題がでた

個人的にはセキュリティに詳しくなりたい、セキュリティに一定以上の知識があるかどうかを試したい、というモチベーションで試験を受けたいわけで、徳丸本に詳しくなりたいわけじゃないので、うーんという感じ

まあでも公式に(徳丸基礎試験)って書いてあるくらいなので、そもそも徳丸本の知識を問う試験なのかもしれん

でも徳丸本自体はいい本だと思います

試験に受かりたければ徳丸本ざっと読めばだいたいなんとかなりそうというか、ウェブアプリの人でXSSやらCSRFやら当たり前に説明できる感じの人ならだいたい受かると思う

2020年7月、8月にやったこと

忙しかったのであまり何もしていない あと記録が遅れすぎて何してたか忘れた 筋トレとかをしていた

失敗から学ぶRDBの正しい歩き方

同僚に借りて読んだ 同僚に借りると汚したりするリスクを恐れてすぐ読むというメリットがあることがわかった あーそうだよね〜みたいなことを考えながら読んでいた気がする

マイクロサービスパターン

だらだらと1/3くらいよんだ saga完全に理解した

スッキリわかる 日商簿記3級

9割位よんでいきなりやる気がどっかいった 試算の仕方に興味が持てない PLとかBSはいまだに読めない 何が書いてあるのかはなんとなくわかるようになったけど何も読み取れない

その他

英文解釈教室をだらだら読んだり レアジョブは17回やった だれているのでlang-8復活した

あとはなんかECS(EC2)で相互に通信するウェブアプリをデプロイしてみたりなんだりしていた記録があるが全く記憶にない Fargateでやる、というメモが残されている

あと

openid.connpass.com

をみたりしていた

あと徳丸試験受けてみよっかなって思ったら試験申し込みの難易度がめちゃくちゃ高いのでびっくりした

あとブログかいた

dev.classmethod.jp

なんかシェアがのびた

あとleetcodeをなんとなくはじめて週1問くらいのペースでゆるゆるといている 絶対これ通らんだろって感じのコードが結構とおってしまう AOJよりだいぶゆるい気がする AOJはGoでやってたけどつらいのでKotlinにした だいぶ楽

あとなんかまとめてた 技術書展で本がでていたので読むかもしれない

2020: Self-Sovereign Identity with Self-Issued OpenID Providerを見ながら書いたメモ · GitHub

あと OAuth 2.0 の学習パスをまとめてみるかとおもってまとめはじめたがかなりざっくりしたところで満足してしまった

もし私が現時点で OAuth 2.0、OpenID Connect についての知識が無だったらおすすめしたい学習用資料一覧 · GitHub

社内でOAuth 2.0の勉強会やろうとおもって同人誌と商用版ながめてたら中身一緒だった どっちも読んでたのに当時気づかなかったのでびっくりした

これからやること

  • AWS入門する
    • ECS
  • Webエンジニアが知っておきたいインフラの基
  • 入門監視
  • クリーンアーキテクチャ
  • Javaパフォーマンス
  • 実践ハイパフォーマンスMySQL 第3版
  • プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
    • 停滞気味
  • Linuxの仕組み
  • Goならわかるシステムプログラミング
  • 英語
  • 中国語
    • Toeic900超えるまで止める予定
  • ここ最近ほとんど業務でプログラミングをしなくなって、調整とかレビューとかばっかしてるがかなり雰囲気でやってるので、マネジメント系の本を読もうとしている
    • なにがいいのかよくわからん
  • Effective Go - The Go Programming Language
  • パタヘネ
  • OAuth2.0のクライアント書く
  • OAuth 2.0/OIDC関連仕様全部読む
  • WebAuthnのドキュメント読む
  • マイクロサービスパターン

example.comのパスにルイズコピペを指定すると500が返ってくる

Qiitadon、文字数制限でルイズコピペが貼れない、みたいな話をみて、URLだとめっちゃ長いテキストが貼れるのでためした

結果、貼れた

で、なんとなくリンクを踏んだら500が返ってきた

http://example.com/%E3%83%AB%E3%82%A4%E3%82%BA%EF%BC%81%E3%83%AB%E3%82%A4%E3%82%BA%EF%BC%81%E3%83%AB%E3%82%A4%E3%82%BA%EF%BC%81%E3%83%AB%E3%82%A4%E3%82%BA%E3%81%85%E3%81%85%E3%81%86%E3%81%86%E3%81%86%E3%82%8F%E3%81%81%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%82%93%EF%BC%81%EF%BC%81%EF%BC%81%E3%81%82%E3%81%81%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E2%80%A6%E3%81%82%E3%81%82%E2%80%A6%E3%81%82%E3%81%A3%E3%81%82%E3%81%A3%E3%83%BC%EF%BC%81%E3%81%82%E3%81%81%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%EF%BC%81%EF%BC%81%EF%BC%81%E3%83%AB%E3%82%A4%E3%82%BA%E3%83%AB%E3%82%A4%E3%82%BA%E3%83%AB%E3%82%A4%E3%82%BA%E3%81%85%E3%81%86%E3%81%86%E3%81%81%E3%82%8F%E3%81%81%E3%81%82%E3%81%82%E3%81%82%E3%81%82%EF%BC%81%EF%BC%81%EF%BC%81%E3%81%82%E3%81%81%E3%82%AF%E3%83%B3%E3%82%AB%E3%82%AF%E3%83%B3%E3%82%AB%EF%BC%81%E3%82%AF%E3%83%B3%E3%82%AB%E3%82%AF%E3%83%B3%E3%82%AB%EF%BC%81%E3%82%B9%E3%83%BC%E3%83%8F%E3%83%BC%E3%82%B9%E3%83%BC%E3%83%8F%E3%83%BC%EF%BC%81%E3%82%B9%E3%83%BC%E3%83%8F%E3%83%BC%E3%82%B9%E3%83%BC%E3%83%8F%E3%83%BC%EF%BC%81%E3%81%84%E3%81%84%E5%8C%82%E3%81%84%E3%81%A0%E3%81%AA%E3%81%81%E2%80%A6%E3%81%8F%E3%82%93%E3%81%8F%E3%82%93%E3%82%93%E3%81%AF%E3%81%81%E3%81%A3%EF%BC%81%E3%83%AB%E3%82%A4%E3%82%BA%E3%83%BB%E3%83%95%E3%83%A9%E3%83%B3%E3%82%BD%E3%83%AF%E3%83%BC%E3%82%BA%E3%81%9F%E3%82%93%E3%81%AE%E6%A1%83%E8%89%B2%E3%83%96%E3%83%AD%E3%83%B3%E3%83%89%E3%81%AE%E9%AB%AA%E3%82%92%E3%82%AF%E3%83%B3%E3%82%AB%E3%82%AF%E3%83%B3%E3%82%AB%E3%81%97%E3%81%9F%E3%81%84%E3%81%8A%EF%BC%81%E3%82%AF%E3%83%B3%E3%82%AB%E3%82%AF%E3%83%B3%E3%82%AB%EF%BC%81%E3%81%82%E3%81%81%E3%81%82%EF%BC%81%EF%BC%81%E9%96%93%E9%81%95%E3%81%88%E3%81%9F%EF%BC%81%E3%83%A2%E3%83%95%E3%83%A2%E3%83%95%E3%81%97%E3%81%9F%E3%81%84%E3%81%8A%EF%BC%81%E3%83%A2%E3%83%95%E3%83%A2%E3%83%95%EF%BC%81%E3%83%A2%E3%83%95%E3%83%A2%E3%83%95%EF%BC%81%E9%AB%AA%E9%AB%AA%E3%83%A2%E3%83%95%E3%83%A2%E3%83%95%EF%BC%81%E3%82%AB%E3%83%AA%E3%82%AB%E3%83%AA%E3%83%A2%E3%83%95%E3%83%A2%E3%83%95%E2%80%A6%E3%81%8D%E3%82%85%E3%82%93%E3%81%8D%E3%82%85%E3%82%93%E3%81%8D%E3%82%85%E3%81%84%EF%BC%81%EF%BC%81%E5%B0%8F%E8%AA%AC12%E5%B7%BB%E3%81%AE%E3%83%AB%E3%82%A4%E3%82%BA%E3%81%9F%E3%82%93%E3%81%8B%E3%82%8F%E3%81%84%E3%81%8B%E3%81%A3%E3%81%9F%E3%82%88%E3%81%85%EF%BC%81%EF%BC%81%E3%81%82%E3%81%81%E3%81%81%E3%81%82%E3%81%82%E2%80%A6%E3%81%82%E3%81%82%E3%81%82%E2%80%A6%E3%81%82%E3%81%A3%E3%81%82%E3%81%81%E3%81%82%E3%81%82%E3%81%82%E3%81%82%EF%BC%81%EF%BC%81%E3%81%B5%E3%81%81%E3%81%81%E3%81%82%E3%81%82%E3%81%82%E3%82%93%E3%82%93%E3%81%A3%EF%BC%81%EF%BC%81%E3%82%A2%E3%83%8B%E3%83%A12%E6%9C%9F%E6%94%BE%E9%80%81%E3%81%95%E3%82%8C%E3%81%A6%E8%89%AF%E3%81%8B%E3%81%A3%E3%81%9F%E3%81%AD%E3%83%AB%E3%82%A4%E3%82%BA%E3%81%9F%E3%82%93%EF%BC%81%E3%81%82%E3%81%81%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%EF%BC%81%E3%81%8B%E3%82%8F%E3%81%84%E3%81%84%EF%BC%81%E3%83%AB%E3%82%A4%E3%82%BA%E3%81%9F%E3%82%93%EF%BC%81%E3%81%8B%E3%82%8F%E3%81%84%E3%81%84%EF%BC%81%E3%81%82%E3%81%A3%E3%81%82%E3%81%82%E3%81%81%E3%81%82%E3%81%82%EF%BC%81%E3%82%B3%E3%83%9F%E3%83%83%E3%82%AF2%E5%B7%BB%E3%82%82%E7%99%BA%E5%A3%B2%E3%81%95%E3%82%8C%E3%81%A6%E5%AC%89%E3%81%97%E2%80%A6%E3%81%84%E3%82%84%E3%81%81%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%EF%BC%81%EF%BC%81%EF%BC%81%E3%81%AB%E3%82%83%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%82%93%EF%BC%81%EF%BC%81%E3%81%8E%E3%82%83%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%EF%BC%81%EF%BC%81%E3%81%90%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%EF%BC%81%EF%BC%81%EF%BC%81%E3%82%B3%E3%83%9F%E3%83%83%E3%82%AF%E3%81%AA%E3%82%93%E3%81%A6%E7%8F%BE%E5%AE%9F%E3%81%98%E3%82%83%E3%81%AA%E3%81%84%EF%BC%81%EF%BC%81%EF%BC%81%EF%BC%81%E3%81%82%E2%80%A6%E5%B0%8F%E8%AA%AC%E3%82%82%E3%82%A2%E3%83%8B%E3%83%A1%E3%82%82%E3%82%88%E3%81%8F%E8%80%83%E3%81%88%E3%81%9F%E3%82%89%E2%80%A6%E3%83%AB

パスが256を超えると500になるっぽい http://example.com/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

はい

Slack のスレッドは問題が解決済みかどうかを隠してしまう

Slack 上で何かを質問して、それに対して誰かがスレッドで返答した場合、以下のようになります。

f:id:inabajunmr:20200711020607p:plain

この質問は解決しているのでしょうか?この時点では解決しているかどうかはわかりません。 この時点でわかるのは、誰かがレスポンスしている、ということだけです。

このスレッドを見かけた私は、スレッドを開いて中を見るべきでしょうか?解決していなければ助けを出したいし、そうでなければ得に何も得られない内容かもしれません。 今回はスレッドを開いてみます。

f:id:inabajunmr:20200711020643p:plain:w300

解決していませんでした。 今回私はスレッドを開きましたが、ある程度レスポンスがついているスレッドをスルーすることはないでしょうか。 私は誰かがリアクションしてるから一旦いいか、でスルーすることがあります。 私に関わらず、ある程度レスポンスのついているスレッドは通常のスレッドでない投稿と比べてスルーされる可能性が高いのでは、と思います。 もしくは、スレッドにコメントが100個ついている場合、ざっと見て誰かが何かしてるからとりあえずいいや、みたいな判断をすることはそれなりにある気がしています。

問題は、「解決していないのに参加者全員が諦めてしまったスレッド」です。 スレッドの参加者は問題を解決できません。誰も解決方法を知らないからです。 答えを知っている人は、誰かが既に対応している、もしくは既に解決済み扱いとして、スレッドをスルーしてしまいました。

f:id:inabajunmr:20200711020749p:plain:w400

スレッドは他の書き込みで流れてしまい、解決済みっぽい雰囲気が増して、最終的に誰の視界にも入らなくなります。

問題は解決しないまま話が終了してしまいました。 悲しいですね。私からは以上です。