問題が発生しました。次のコードスニペットを書きました:HTML ASCIIコードで置き換えます
teksti = teksti.Trim()
teksti = Replace(teksti, "<", "& lt;")
teksti = Replace(teksti, ">", "& gt;")
teksti = Replace(teksti, """", "& quot;")
teksti = Replace(teksti, "'", "& #8217;")
teksti = Replace(teksti, "%", "& #37;")
teksti = Replace(teksti, "&", "& amp;")
teksti = Replace(teksti, "#", "& #35;")
teksti = Replace(teksti, "@", "& #64;")
これを書いた後、私はそれが自分自身の問題になることを認識しました。この関数は、HTMLやSQLインジェクションの情報を安全にすることになっています(他にもメソッドやパラメータ化されたクエリなどがありますが、それはその要点です)。しかし、何が起こるのかは、最初に<
を& lt;
に置き換えて、次に置換文字列がすべて&、#と#となるように書き換えられます。それにサインをする。
ヒント私はこれの正規表現を使用することを考えたが、私は十分なシンプルなまともなVisual Basicの例を見つけることができませんでした。
編集:ヒントありがとうございます。私はこれを行う "スマート"簡単な方法があるだろうと確信していましたが、後で利用可能な一般的な方法はないと思います。最初に問題のケースを並べ替えることは、明らかな解決策です。仕事の日は私が気づくには長すぎると思う。 :D
パラメトリッククエリについては、私の英語が意図したとおりに出てこないことを確認しています。私はすでに、それらを使用していると言います。この問題は、html-injectionの可能性を排除し、後で同じ文字列を使用する可能性のあるSQLインジェクションを防ぐことに特有の問題です。助けてくれてありがとう。
System.Webの任意の.Net言語で利用できます。 –
もちろんです。 OPは具体的にはVBだと言っていたので、VBのどの種類のものを修飾していました。 –