Cơ bản về bảo mật trong Ajax Công nghệ Ajax đã xuất hiện trên các trangweb từ nhiều năm trước nhờ có thuộctính tươngtác của nó. Google Suggest và Google Mapslà haiứng dụng của công nghệ này từ sớm. Ngày nay,cáccông tyđangnghĩ xem làm thế nàođể có thể tận dụng được nó,các chuyên gia thiết kế web thì cố gắng họchỏi nó, các chuyên gia bảomật cố gắngđể bảo đảm nó,còn các thanhtra viên về chống thâmnhập đang nghĩ làm thế nàođể có thể hack nó. Nói gìđi chăngnữa thìbất cứ một kỹ thuậtmới nào mà có thể cải thiện thônglượng của các server, cung cấp việc chuyển trạng thái linhhoạt hơn và tạora các ứng dụng web phongphú hơn đến người sử dụng thì cũng rốt cuộclà tìmra một vị trí đứng chân trong lĩnhvực công nghiệp. Ajax được xem như làbước tiếp theo của thế hệ “web2.0”. Mục đích của bài nàylà nhằmmục đích giới thiệu mộtvàivấn đề cơ bản về bảo mậttrong côngnghệ web Ajax hiện đại. Với Ajax, các ứng dụngcó thể khó cho việc kiểm trado đó các chuyên gia bảomật đã chuẩn bị cácphươngpháp phù hợp và các công cụ cần thiết khác. Chúng tasẽ thảo luận xemcó cần nói lời chia tay với cácứng dụng web cũ thay vào đó là việc sử dụngAjax để rồi cũng có nghĩa là chúng ta đón chào một vài lỗ hổng bảo mật mới. Bâygiờ chúng ta sẽ thảo luận vắn tắt về các kỹ thuật bên trong của Ajax và xét ảnh hưởng các ứng dụng Ajaxvới bảo mật như thế nào. Cốt lõi của Ajax Các ứng dụng web thôngthường làmviệc trên mô hình đồng bộ,có nghĩalà khicó yêu cầu web của ai đó thìđi cùng với nó là một đáp ứng thực hiệnmột vài hành động tronglớp trình diễn(presentation). Ví dụ: việc click mộtlink haynhấn chuột vàonút submitsẽ tạo ra một yêu cầu đến webserver với các thamsố cóliên quan. Thói quen “click và wait”này đã giới hạn sự tương tác của các ứng dụng. Vấn đề này được làm giảm bớt bằng việc sử dụngcông nghệ Ajax(Asychronous Javascript and XML).Với mục đíchcủa bài viếtnày tôi chỉ xemAjax như một phương thức gọi không đồng bộ của nó tác động đến web servermàkhôngphải refreshtoàn bộ trangweb. Loại tương tác này có thể thựchiện đượcbới ba thành phần: ngôn ngữ scripting trìnhkhách, đối tượngXmlHttpRequest(XHR) và XML. Sau đây chúng ta hãy thảo luận vắn tắt các thành phần này: Ngôn ngữ scripting trình khách đượcsử dụng để khởi tạocác lệnh callđến server sau đó được sử dụng để truy cậpchương trình và updateDOMbên trong trình duyệt của trình khách. Sự lựachọn phổ biến nhất trên trình khách là Javascript bởi vì sự hiển thị của nó với các trình duyệt là khá tốt.Thànhphần thứ hailà đốitượng XHR, đây mới thựcsự là trái tim của kỹ thuật này. Các ngôn ngữ như Javascriptsử dụngđối tượng XHRđể gửi cácyêu cầuđến web server ẩn dưới kịch bảnvà sử dụngHTTP như một trung gian truyền tải. XML sẽ định dạng dữ liệu chocác messagesmàcó thể thayđổi. Nhiều trang sử dụngJSON(JavascriptObject Notation) trong phầnXML bởi vì cú pháp củanó dễ hơn. Khi sử dụng Javascriptđể phântích cú pháp JSON thìnó đơn giản nhiều. Mặt khác ai đó cũngcó thể sử dụngXpath để phân tích quay trở lại cú pháp XML.Cũng có nhiềutrang Ajaxkhông sử dụngXML hay JSON,thayvào đó chỉ gửi nhữngmẩu HTML đã được chèn động tínhvào trong trangweb. Như đã chỉ ra ở trên,Ajax không phải là một công nghệ mới toanh mà thay vàođó là một sự kết hợpcác công nghệ tồn tại trước đó cùng nhauđể phát triển các ứng dụngweb cótính tương tác cao. Trong thực tế, tất cả các thành phần trên đã xuất hiện trướcvàđã đượcsử dụngnhiều vớiIE5.0. Các chuyên giathiết kế đã đưa ra các trường hợp sử dụngAjax như là “Suggestive” textboxes, và các bảng danhsách dữ liệu tự độngrefresh. Tất cả các yêu cầu XHRvẫn được xử lý bởi server side frameworks điển hình như các chuẩn giống J2EE, .Net và PHP.Tính không đồngbộ của cácứngdụng Ajaxđược thể hiện trong hình dưới đây. Bảo mật Ajax. Chúng tađã ônlại về Ajax, bâygiờ hãy thảoluận về việc bảo mậtnó. Ajaxkhông có lỗ hổngbảo mật mới trong lĩnhvực ứng dụng web.Thayvào đó các ứng dụngđối mặtvới các vấn đề bảo mật như các ứngdụngweb cổ điển. Không may, các hành độngchung nhất của Ajax lại khôngđược phát triển, việc này đã để lại rất nhiều vùng có các vấn đề sai. Việcnày baogồmsự nhậnthức đúng đắn, sự cấp phép, điều khiểntruy cậpvà phê chuẩn đầu vào. Một vàilĩnh vựctiềmnăng có liên quan đến sử dụng Ajax như sau: * Các điều khiển bảo mật trình khách Một vài người cóthể tranh luận rằng sự phụ thuộcvào việclậptrình trên trình khách gây ra khả năng mangđến mộtvài vấn đề định hướng. Khả năng như vậy liên quanđến việc bảo mậtcủa các chuyên gia thiết kế kémhiệuquả thôngquacác điều khiển trìnhkhách. Như chúngta đã thảo luậntrong phần trước trường hợp sử dụng của Ajaxlà khá ít cho mã scripting trìnhkhách. Tuy nhiên các nhà thiết kế hiện nayđangphải viết cả hai loạimã trên trình chủ và trình khách. Vì vậy có thể thu hútcác chuyên giathiết kế hướng về điều khiển bảo mật trên trìnhkhách.Rõ ràng trên trình kháchlà không an toànvì các kẻ tấn công cóthể thay đổi bất kỳ code nàođang chạy trênmáy tính trìnhkhách của họ.Chínhvì vậycác điều khiển bảo mật cần phải bổ sung trêncả server hay luôn luôn phải được thi hànhtrên máy chủ. * Tăng bề mặt tấn công Một thách thức thứ hai liênquanđến sự khó khănlà việc bảo vệ sự tăngbề mặt tấn công. Ajax chắc chắnlàmtăng độ phức tạp củatất cả các hệ thống. Trong quá trình mà Ajaxkế tục, các chuyêngia thiết kế có thể viết mã với một số lượng lớn các trangtrình chủ,mỗi trang thực hiện một vài chức năng nhỏ (trong cả ứng dụng lớn). Các trang nhỏ này sẽ là một targetthêm vàocho các kẻ phá hoại và như vậy một điểm thêm nữa cần phải được bảo đảm để bảo vệ lỗ hổng mới không được giới thiệu. Điều này tương tự như cáckhái niệm bảo mật đã biếttrong các lối đi vào của một ngôi nhà: khó khăn ở đây là chỗ việc bảođảm cho một ngôi nhà một cửa so với cho một cái có 10 cửa. * Kẽ hở cầu nối giữa người dùng và các dịch vụ. Ajax làmộtphươngpháp mangđếncho người dùng cácgiao diện thân thiện hơn bởi cấu trúc dịch vụ trực tiếp của nó. Cúhích để làm cho mộtcặp cấutrúc server- based rời ra là mộtý tưởng đầy hứa hẹn với nhiều lợi ích nhấtlà trongmôi trường kinh doanh.Khi có nhiềuhơn các “endpoint” này được phát triển và khiAjax giới thiệukhả năngđẩy việc xử lý tinhvi hơnđến ngườidùng thì triển vọng chuyển rời mô hình balớp sẽ xảy ra. Nhìn chung,nhiều dịch vụ webbên trong hệ thống kinhdoanh(cái mà tương phản với toàn bộ mạngInternet)đượcthiết kế cho B2B (BusinesstoBusiness), cũng chínhvì thế các nhà thiết kế và pháttriển thường không mong muốnsự tương tác với người dùng thực sự. Sự không lo xa này dẫn đến một loạt cácgiả định bảo mật tồi trong suốt quá trình thiết kế. Ví dụ, các nhà thiết kế lúcban đầu đã thừa nhận sự nhậnthức,quyền năng đó và hiệu lực ở đầu vàosẽ đượcthựchiện ở các hệ thống thuộc tầng giữa. Ai đó chophép “outsiders”gọi trực tiếpcác dịch vụ này thông qua Ajax, mộttác nhân không mong muốn đã được giới thiệu trong ảnh. Một ví dụ thực của cuộc sốngnhư vậy là mộtmắt xích phù hợp từ Microsoftđến sử dụngAtlas hand-in-handvới cácdịch vụ web. Giờ đây cácchuyên gia thiết kế có thể viết Javascript để tạo đầu vào XMLvà gọi đúng dịch vụ web từ bêntrongtrình duyệt của trình khách. Trong quá khứ, điều này đã được thực hiện thôngqua các sự ủy nhiệm dịch vụ tại server. . đồngbộ của cácứngdụng Ajax ược thể hiện trong hình dưới đây. Bảo mật Ajax. Chúng tađã ônlại về Ajax, bâygiờ hãy thảoluận về việc bảo mậtnó. Ajaxkhông có lỗ hổngbảo mật mới trong lĩnhvực ứng dụng. dụngAjax để rồi cũng có nghĩa là chúng ta đón chào một vài lỗ hổng bảo mật mới. Bâygiờ chúng ta sẽ thảo luận vắn tắt về các kỹ thuật bên trong của Ajax và xét ảnh hưởng các ứng dụng Ajaxvới bảo mật. đứng chân trong lĩnhvực công nghiệp. Ajax được xem như làbước tiếp theo của thế hệ “web2.0”. Mục đích của bài nàylà nhằmmục đích giới thiệu mộtvàivấn đề cơ bản về bảo mậttrong côngnghệ web Ajax hiện