アカウント名:
パスワード:
二十年ぐらい前からSQLインジェクションやhtmlでのscripインジェクションなどが話題になってて入力文字列をそのままシステムで扱うのは禁止って初歩的な常識ができている。それなのにいまだにたびたびこういう問題が、しかも大企業のシステムで出てくるのは不思議でならない。わざと穴を作っていつでも侵入できるようにしてるとか陰謀論を考えたくなる。
型指定とか暗黙の型変換とかプログラム言語的な問題でしょ。
そういうのはソースコードに直接文字を書き込むときにしか起きないから、適当なエンコードかけておくだけで起きない問題だし意図しない変換がおきないようにそれをしておくのが普通だよ。
暗黙の型変換は普通変数内の値に対して起こるものだからソースコードに直接文字を書き込むときに起きるわけではないし、文字列変数内部の値をわざわざエンコードかけて保持しておくなんてめったにしないよ。じゃないと文字列操作や検索が面倒になる。
型変換は普通変数内の値に対して起きるのではなく、変数に文字列を代入するときに起きる(どちらも同じようだけどまったく違い)。ソースコードは文字列だから代入される値も文字列で型変換が起きる。jsonへの書き出しなども同じ。エンコードは、文字列を代入するときに起きるから文字列をエンコードかけて代入時に変換されないようにしてしまう。変数内では型変換が起きないから一度読み込んだ後はデコードして扱う(エンコード値を保持するわけではない)。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
普通のやつらの下を行け -- バッドノウハウ専門家
どうしてこんな問題が起きるんだろう (スコア:0)
二十年ぐらい前からSQLインジェクションやhtmlでのscripインジェクションなどが話題になってて入力文字列をそのままシステムで扱うのは禁止って初歩的な常識ができている。
それなのにいまだにたびたびこういう問題が、しかも大企業のシステムで出てくるのは不思議でならない。
わざと穴を作っていつでも侵入できるようにしてるとか陰謀論を考えたくなる。
Re: (スコア:0)
型指定とか暗黙の型変換とかプログラム言語的な問題でしょ。
Re: (スコア:0)
そういうのはソースコードに直接文字を書き込むときにしか起きないから、適当なエンコードかけておくだけで起きない問題だし意図しない変換がおきないようにそれをしておくのが普通だよ。
Re:どうしてこんな問題が起きるんだろう (スコア:0)
暗黙の型変換は普通変数内の値に対して起こるものだからソースコードに直接文字を書き込むときに起きるわけではないし、
文字列変数内部の値をわざわざエンコードかけて保持しておくなんてめったにしないよ。じゃないと文字列操作や検索が面倒になる。
Re: (スコア:0)
型変換は普通変数内の値に対して起きるのではなく、変数に文字列を代入するときに起きる(どちらも同じようだけどまったく違い)。ソースコードは文字列だから代入される値も文字列で型変換が起きる。jsonへの書き出しなども同じ。
エンコードは、文字列を代入するときに起きるから文字列をエンコードかけて代入時に変換されないようにしてしまう。変数内では型変換が起きないから一度読み込んだ後はデコードして扱う(エンコード値を保持するわけではない)。