パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

「ドラゴンボールZ」のスマホゲームで「ガチャ」でプレイヤーごとに提供割合が違う疑いが出る」記事へのコメント

  • 公式の説明で公開されたソースコード [bngames.net] は、サーバ側ではなくユーザーがダウンロードするアプリに含まれていたコードなので、アプリを逆コンパイルをすることで実際に使われていたコードであることを確認することができます。ただし、利用規約違反となる恐れがあります。

    当該のコードは、実際にユーザーに配信されたアプリに含まれていた [imgur.com] ようなので、公表さ

    • by Anonymous Coward
      まじかよ
      ユーザーローカルで実行されるコードでSQLのWHERE節を%sで組み立てちゃうのかよ
      典型的なSQLインクジェットの原因になるんじゃないの
      • 今回はクライアントサイドのコードですし、仮にサーバーサイドでも元のデータがuint32_tのvectorなので、どう頑張っても"SQLインジェクション"はできません。(継承してたら可能性はゼロではありませんが、現実的ではない)
        Web業界は馬鹿の一つ覚えでSQLは全部プリペアードステートメントって風潮がありますが、ゲーム業界だとパフォーマンス重視でこう言う安全が保障されているところでは、自前で組み立てたりします。
        他にRDBMSであえてリレーションを貼らずにソフト側で処理したりとか、独自の最適化?が結構あります。
        こう言った最適化の積み重ねがの結果がモッサリ感有無になったりするので、結構重要です。

        親コメント
        • 引数が整数なのでインジェクションの心配がない、という点については同意なんですが

          必要最小限(キャッシュにないデータ)だけを取ってくるのではなく、キャッシュから取得済のIdも含めた全Idを IN に入れたSQLを発行するなんて、とても「パフォーマンス重視」とは思えないですね。パフォーマンスを気にするなら、キャッシュになかったIdだけを指定して取得するSQLを発行しないと。

          単に「引数個数不定だからプリペーアドステートメントが使えないのでSQL文字列生成した」だけで「パフォーマンスのことなんか何も考えてないだけ」に一票入れたい。

          親コメント

アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家

処理中...