Cấp bậc tác giả:

DOTNET

Rewrite Url, thật đơn giản

Được viết bởi QuangIT ngày 13/08/2012 lúc 07:17 PM
Kỹ thuật rewrite URL là kỹ thuật dùng để che giấu url thật nhằm chống lại khả năng tấn công vào url.
  • 0
  • 1911

Rewrite Url, thật đơn giản

loading...

Kỹ thuật rewrite URL là kỹ thuật dùng để che giấu url thật nhằm chống lại khả năng tấn công vào url.

Ví dụ: thật sự bạn cần đưa ra 1 url như sau: 
(1) http://www.banhang.com/?product.aspx?productID=123&ProductType=Hardware

nhưng thực tế trên thanh địa chỉ của trình duyệt thì phải là: 
(2) http://www.banhang.com/Product/Hardware/123 chẳng hạn.


Lúc này RewiteURL đã làm cái việc chuyển đổi (2) -> (1) theo một quy tắc người lập trình quy định.

Ví dụ dưới kèm theo sẽ minh họa cách rewrite những Url aspx thành aspvn

Cách bước thực hiện như sau:

  1. Tạo 1 class có tên là RewriteUrlClass thừa kế từ IHttpModule:

    using System;
    using System.Web;

    public class RewriteUrlClass : IHttpModule
    {
    #region IHttpModule Members

    public void Dispose()
    {
    }

    public void Init(HttpApplication context)
    {
    context.BeginRequest += Context_BeginRequest;
    }

    private static void Context_BeginRequest(object sender, EventArgs e)
    {
    HttpApplication httpApplication = (HttpApplication) sender;
    string url = httpApplication.Request.RawUrl.ToLower();

    // Nếu là Url ảo như sau"
    if (url.Contains("/default.aspvn"))
    {
    // Thì Url thực mà Server cần xử lý là:
    httpApplication.Context.RewritePath("Default.aspx");
    }

    // Nếu là Url ảo như sau"
    if (url.Contains("/login.aspvn"))
    {
    // Thì Url thực mà Server cần xử lý là:
    httpApplication.Context.RewritePath("Login.aspx");
    }

    // Tùy thuộc vào quy tắt Rewrite mà chúng ta xử lý.
    // Một trong những cách hiệu quả nhất là dùng Regex Expression.

    }

    #endregion
    }
  2. Đăng kývào httpModules trong Web.config như dưới đây:

    <system.web>
    <httpModules>

    <addname="MyUrlRewriter"type="RewriteUrlClass"/>

    httpModules>
    .
    .
    .


    system.web>
  3. Chạy thử với các url có nằm trong quy tắc rewite RewriteUrlClass trong class có phần mở rộng là aspvn

Nguồn bài viết: Aptech

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML