私はASP.netでURL書き換えを実装しています。私のURLは私に世界の問題を引き起こしています。ASP.Net URLエンコーディング
URLは、部門のデータベース&のカテゴリから生成されます。私は従業員がサイトに侵入することなく適切な文字があればデータベースにアイテムを追加できるようにしたいと考えています。
私はURLを構築する前にデータをエンコードしています。それはそれは不可能適切に「/」それで使って何を解析すること、.NETに到達する前に
いくつかの問題があります...
- IISは、URLをデコードします。
- ASP.netは、私は私のローカルIISサーバー(XPマシン)とエンコード&(%26)を含む任意のURLにテストサーバーで構築から移行
- 特定のページに無用のURLづくり「〜」で混乱してしまいます私に「Bad Request」エラーが表示されます。
- UrlEncodeは、一部の改行文字に '。'
私はこの問題に関する2つの関連記事を掲載しました。私は "Bad Request"問題を解決するためにいくつかのレジストリを見つけましたが、共有ホスティング環境に展開してそれを役に立たないようにするつもりです。私はこれが何らかのセキュリティ上の問題のための修正であることも知っていますので、私は開かれているワームの何ができるかを知らずに必ずバイパスしたくありません。
.netに生のURLを渡すようにするのではなく、最初に本当に安全なURLを作成したいと考えています。
私は、AntiXss.URLEncode、HttpUtility.URLEncode、URI.EscapeDataStringを試してみました。私はダブルURLEncodngのような愚かなことを試みました。私が必要とするものを行うユーティリティはありますか、本当に自分自身をロールバックする必要がありますか?私はHackyのような何かを、珍しい文字列で置き換えるようなことを検討しています。最初の場所でURL書き換えを使用する点であっても、結果は少なくとも読み取り可能でなければなりません。
申し訳ありませんが、私は必要なすべての詳細が含まれていることを確認したいと思っていました。私はこれに関する関連情報を見つけることができないようで、よくある問題のように思えます - 多分私は大きなものを見逃しています。あなたの助けに感謝し、長い説明と忍耐を!明確にするため
は編集:
私はURLは私が何を意味するか、データベースから構築されていると言うディレクトリ構造は、私のデータベース内の部門およびカテゴリからcontstructedされていることです。
いくつかの例のURL -
ディレクトリのmystore /冷凍/バー+ Fridge.aspx
ディレクトリのmystore /料理+ Equipment.aspx
ディレクトリのmystore /キッチン/カット+ Boards.asxpx
問題がでてきます私は、 "Beverage & Bar"や "Pastry/Decorating"のような部門を使って自分のURLを作ります。最初に符号化されているにもかかわらず、これらは前述の問題を引き起こす。
私のハンドラは既に実装されており、特殊文字エンコーディングの問題を除いて正常に動作しています。
を探していると思います私の他の関連posts-ある http://stackoverflow.com/questions/1274669/ url-encoding-being-lost-before-processing-asp-net - 同様の質問ですが、元のリンクにエンコードを固定するのではなく、.netに元のURLを付けるようにしていました。 http://stackoverflow.com/questions/1194900/asp-net-path-problems-caused-by-encoded-urls 「〜」問題を修正しようとするうちに、より大きな問題が発生することがわかりました。 –