- motoyaKITO
- 16430
- 74
- 5
- 43
串カツの二度漬け禁止ルールの脆弱性を発見した。 まず何もつけずに一口かじり、その後にソースに漬けるパターンを防御できていない。
2019-05-30 18:13:12検証と改善
@bakker7 あー確かに、一本の串を塩→ソースの順で食べるという形で、意図せず脆弱性を突いてしまっているユーザはいそうですね。ソースには確かに一度しか漬けてないわけだし。外国人とかだと本当に間違えるかも。
2019-05-30 18:43:17@set0gut1 横から失礼します。 二度漬け禁止ルールの仕様が「同一の串カツを2度以上ソースに投入しないこと(実装は問わない)」という趣旨であれば「串カツが缶に入った回数」で制御するのではなく「串カツが口に入られた回数」で制御する方法で実装であれば脆弱性は回避できるかと思われます。
2019-05-30 22:41:32@kyounosuke1218 確かに「一度はソースに漬けられなければならない」というルールはないので、一度もソースに漬けることができない状態を発生させても問題なさそうです。 「口に65536回入れることでカウントを0に戻す」といった攻撃も成立しそうなので、そのあたり注意しながらやってみます。 ありがとうございました。
2019-05-30 23:29:06@set0gut1 @kyounosuke1218 まさに法政策と同じや......みんななんとかして制度の脆弱性を見つけて、そこを突こうとする.......
2019-05-31 08:19:02@set0gut1 @mya_tarabagani 口を「つけた」時点で、1度目の「つけ」が成立してしまうというバッチを適用しませう。
2019-05-31 08:29:56@sugitaka32 @mya_tarabagani 口に入れることも「漬け」としてカウントする方法も考えてみたのですが ・一口で食べなければならない ・そもそもソースに漬けた後に口に入れることができない といった挙動になってしまいました。 なのでやはりソース壺と口は別物であると考えた方がシンプルにできると現時点では考えています。
2019-05-31 11:26:49@sugitaka32 @mya_tarabagani 今思えば、漬けたかどうかのフラグは共通にして、漬けられるかどうかの判定部分だけ口とソース壺で分岐させれば良かったですね。 これが一番最小の変更で済みそうです。 ありがとうございます。
2019-05-31 11:37:11結論
いろいろ議論させていただいて、現時点では「つけ漬け禁止」とするのが良いかと思っています。変更後は次の二つを禁止することができます。 ①ソースに「漬けた」あと(お皿などに置いて)再度ソースに漬ける行為 ②口を「つけた」あとソースに漬ける行為(一回目を含む) pic.twitter.com/rYXpyx7RYZ
2019-05-31 12:48:16「つけ漬け禁止」と変更した場合、ユーザビリティ的には「おどれ何ツケヅケしとんじゃワレェ」といった感じとなり、デグレはしないと思われます。 「つけづけ禁止」と書くと「ソースに漬けたあと口をつける行為」まで禁止されるという深刻な不具合が発生するので、そこだけ注意が必要となります。
2019-05-31 12:48:55他の課題
@hirocu ソースから取り出さずに食べるパターンは考慮していませんでした。 容器の形を工夫することでハードウェア的に解決するかとも思いましたが、「ソースを直接飲む」といった攻撃手法も考えられますね…。
2019-05-31 14:00:20