使う側の問題でしょ、という考え方は、使う側に何かしらの過失があったならば、どんなひどい目にあっても仕方ないみたいな考え方が根底にあるように思える。そして、それはとても危険な考え方であるように思う。人によっては「生肉焼かないで食ったら腹壊して当たり前でしょ、死んでも文句言えないわ」ぐらいに捉えているかもしれない。俺の感覚だと「パスタのゆで時間を間違えて料理が不味くなるのは仕様だけど、ゆで時間間違えて人が死んだらおかしいわ」ぐらい。
単なるバグやエラーと、セキュリティ上の問題は切り分けて考えないといけない。ライブラリを設計する際は、想定外の値が入力されて「エラーを引き起こす」ことがあっても、それが致命的な脆弱性にならないように配慮されているべきだ、と考える。そういう風になっていない事例はたくさんあるし、セキュリティに関する話で言うと、インジェクション系の話は大体そういう問題だ。ライブラリの仕様がイケていない、けれど使う側の注意や努力でカバーできてしまうために、責任転嫁され問題が先送りされてしまう。jQuery側を修正しても多くのライブラリには「入力値を検査していないことで想定されていないHTML要素が選択される可能性がある」というバグが残るけれど、それは単なるバグであって、特殊なケースでなければ脆弱性にはならない。注意すれば防げる、俺ならそんなミスはしない、というのは戯言であって何の役にも立たない。バグはあって当たり前、バグがあっても脆弱性にならないようにすることを考えたほうがいい。
jQuery XSS問題の補足 - 金利0無利息キャッシング – キャッシングできます - subtech (via syoichi)