DEVELOPER TRAINING

  • Trang chủ
  • Khóa học
  • Tutorials
    • React Native
  • Đăng ký
  • Tài liệu
    • Thường thức iPhone
    • Mạng xã hội , Social Network
    • Android, ios, Windows phone, Blackberry
    • CRM
    • ERP
    • Joomla, Wordpress, Drupal...
    • Codeigniter, Zend, Phalcon...
    • Magento, Prestashop, opencart ...
    • Tài liệu khác
  • Tuyển dụng
    • Tìm người cùng khởi nghiệp
    • Tuyển thực tập lập trình
  • Chuyển đổi số
    • Chuyển đổi số
    • Kinh tế số
    • Kinh tế chia sẻ
    • Fintech
    • Mạng xã hội
    • insurtech
    • Bất động sản 4.0

Tài liệu lập trình, tài liệu triển khai CRM, tài liệu triển khai ERP, tài liệu marketing

Tài liệu

Khắc phục lỗ hổng XSS thường thấy nhất trong các ứng dụng React.js

  • Print

Người ta thường tìm đến React.js nhờ vào khả năng render đồng hình (hoặc vạn năng) của công cụ này. Nói cách khác, là khả năng render single page application (ứng dụng đơn trang) ở phía server, gửi html đến client và biến client trở thành interactive (tương hỗ) mà không phải render lại cả page.

Các thư viện như Redux thậm chí còn có cả tài liệu riêng hướng dẫn cách thực hiện chức năng này. Trong tài liệu, bạn có thể tìm được một số mẫu code sau:

Ví dụ về XSS Vulnerable từ tài liệu Redux về cách chia sẻ state từ server với client.

Hiện nay, bạn có lẽ đang nhìn vào đoạn code và đang tự hỏi vấn đề bảo mật nằm ở đâu.

Đừng lo, với mức độ lổ hổng thì không biết mới là bình thường.

Sự cổ ở đâu?

Sự cố trong đoạn code này nằm ở cách chúng ta pass Store state vào ứng dụng. Trong screenshot trên, chúng ta ta chỉ thực hiện một call JSON.stringify, và chỉ định nó đến biến global trong script tag. Lỗ hổng thực sự nằm ở đây.

Khi trình duyệt web phân tách html của page, và bắt gặp tag <script> này, và sẽ tiếp tục đọc cho đến khi thấy được </script>—  đồng nghĩa với việc, nếu redux store store của bạn có giá trị như sau trong đó, sau đó khi bạn lòa client, bạn sẽ nhận được thông báo “You have an XSS vulnerability!”.

1
2
3
4
5
6
7
8
9
10
11
12
13
 
{
 
user : {
 
   username : "NodeSecurity" ,
 
   bio : "as</script><script>alert('You have an XSS vulnerability!')</script>"
 
}
 
}
 

Trình duyệt sẽ không thật sự đọc cho đến dấu ngoặc cuối cùng, thay vào đó, trình duyệt chỉ thật sự xong hết tag script sau bio: "as

Bạn có thể ngăn lỗ hổng XSS vulnerability này như thế nào?

Open Web Application Security Project may mắn thay có một loạt tài nguyên rất hay về XSS prevention. Để ngăn chặn lỗ hổng này, chúng ta cần các biện pháp an toàn khác cho ứng dụng:

  1. Tất cả user input có HTML entities đã thoát (escape). Khi bạn đang sử dụng React, công cụ sẽ ngăn chặn đa số lỗ hổng XSS, phần lớn do cách tạo DOM Nodes và nội dung văn bản.
  2. Khi xếp thứ tự state trên server để được gửi cho client, bạn cần phải xếp thứ tự theo hướng cho phép thoát HTML entities. Đây là bởi vì bạn thường không còn dùng React để tạo string này nữa, vì thế sẽ không tự động thoát string.

Các kỹ sư tại Yahoo may mắn thay, đã tìm được cách ứng dụng phương pháp thứ hai rất dễ dàng thông qua module Serialize JavaScript, vầ dễ dàng nhúng vào ứng dụng.

Đầu tiên cài đặt với: npm install --save serialize-javascript

Sau đó chúng ta có thể thay đổi đoạn code trước đó thành như dưới đây; Cụ thể hơn, hãy chúng để ý những thay đổi mà chúng ta sử dụng serialize thay cho JSON.stringify khi chỉ định giá trị đến __PRELOADED_STATE__

Snippet đã vá lỗi với JavaScript module Chuyên Dụng của Yahoo.

Về phần nhận dữ liệu ở phía client cũng giống y nhứ trước đó, ngoại trừ bạn giờ đây chỉ việc làm sao để bất kỳ HTML Entities trong string thoát được là xong (sẽ trông như \\u003C\\u002Fscript\\u003E thay vì </script>)

Remember: Just because you’re building an application with the latest technology on the market, or technology that is used by Facebook, you still have to take care of all the standard security practices you would, if you were writing an application with a Rails, Django, PHP, or older stack.

Chỉ vì bạn đang xây dựng ứng dụng với những công nghệ mới nhất trên thị trường, hay những công nghệ do Facebook sử dụng, Có nghĩa là bạn được quyền chém bản những biện pháp bảo mật thông thường như với những công nghệ như Rails, Django, PHP hay cũ hơn thế nữa.

medium

Có thể bạn quan tâm:
  1. Cách vệ sinh bao da iPad, vệ sinh bao da máy tính bảng, vệ sinh bao da smartphone
  2. Tăng tốc mysql
  3. Kinh nghiệm “xương máu” khi lập trình
  4. Hướng dẫn lập trình smart TV SamSung
  5. Tự tạo plugin jQuery, tại sao không?
  6. Sổ tay Git cơ bản cần phải biết khi đi làm
  7. Vệ tinh địa tĩnh là gì?
  8. Netflix – 1 trong 10 doanh nghiệp tiêu biểu sử dụng NodeJS hiệu quả
  9. Khắc phục lỗi ẩn mất các component của Joomla 3.x
  10. Thủ tục hồ sơ xin hỗ trợ tài chính của Quỹ Phát triển doanh nghiệp nhỏ và vừa
  11. Làm sao để làm việc ban ngày cũng hiệu quả như ban đêm?
  12. Cách đổi tên thiết bị Android
 
DVMS chuyên:

* Viết ứng dụng cho smartphone và máy tính bảng: iPhone, iPad , Android, Tablet, Windows Phone, Blackberry, Uber app, Grab app, mạng xã hội, vận tải thông minh, thực tế ảo, game mobile,...
* Viết ứng dụng tìm và đặt xe, các hệ thống theo mô hình kinh tế chia sẻ, uber for x, ứng dụng giúp việc,...
* Xây dựng các giải pháp quản lý vận tải, quản lý xe công vụ, quản lý xe doanh nghiệp, phần mềm và ứng dụng logistics, kho vận, vé xe điện tử,...
* Tư vấn và xây dựng mạng xã hội, tư vấn giải pháp CNTT cho doanh nghiệp, startup, ...

Quý khách xem Hồ sơ năng lực của DVMS tại đây >>

Quý khách gửi yêu cầu tư vấn và báo giá tại đây >>

  • Prev
  • Next
  • tweet

Nhiều người quan tâm

  • Mã nguồn mạng xã hội giống y Facebook
  • Tìm co-founder cho các dự án khởi nghiệp
  • Phương pháp giải quyết phản bác
  • Gần 700 forum, trang rao vặt giúp tăng độ phủ quảng cáo, SEO, Backlink
  • Danh sách 6.500 website mua bán rao vặt, tốt để quảng cáo, SEO và tạo backlink
  • Top danh sách hơn 300 website submit PR cao

Tin mới

Hướng dẫn quản trị và sử dụng VTigerCRM 5.4 31 May 2017
Angular Vs ReactJS: cuộc chiến không khoan nhượng 09 January 2019
Sử dụng Data attribute trong HTML 09 January 2019
Tôi code vì tiền? 09 January 2019
iOS bám đuổi quyết liệt Android về thị phần di động 08 March 2014
Facebook bị hack và những nguy hiểm khó lường hết 29 March 2018

Blogs

  • Ứng dụng SMS gateway
  • Tự động Kiểm tra thông tin người gọi đến | Call Look
  • Kiểm soát đường huyết bằng smartphone và tablet
  • Mẫu văn bản cho công ty gia công phần mềm, phát triển mobile apps
  • Giải pháp xem truyền hình trên smartphone
  • Happy Life - Cuộc sống mạnh khỏe và hạnh phúc hơn

Lập trình ứng dụng di động

  • Lập trình Android
  • Lập trình iOS
  • Lập trình Windows Phone
  • Lập trình BlackBerry OS
  • Lập trình BlackBerry 10
  • Lập trình J2ME
  • Lập trình game mobile
  • Đồ họa cho ứng dụng
  • Lập trình Phonegap
  • Lập trình Unity 3D
  • Lập trình Xamarin
  • Lập trình web mobile
  • Lập trình Node js

Học lập trình

  • Lập trình .NET
  • Lập trình C/C++
  • Visual C++
  • Visual C#
  • Lập trình Visual Basic
  • Visual Basic .NET
  • Lập trình Java
  • Lập trình trên Linux
  • Công cụ, ebooks .NET
  • Dự án lập trình .NET
  • Hỏi đáp về lập trình
  • Hướng dẫn cho người mới
  • Thủ thuật
  • Hỏi đáp tin học

Lập trình web

  • Lập trình PHP
  • Flash và các vấn đề
  • Thiết kế web
  • Lập trình web JSP
  • Lập trình web ASP
  • Lập trình web ASP.NET
  • HTML - CSS
  • Webmaster/ SEO
  • JavaScript / Ajax, jQuery
  • Lập trình Phalcon

Cơ sở dữ liệu

  • MS SQL Server
  • MySQL
  • Oracle
  • Các hệ CSDL khác
  • Bigdata
  • Blockchain

OpenSource Master

  • Lập trình và quản trị Joomla
  • Lập trình và quản trị Wordpress
  • Lập trình và quản trị Drupal
  • Lập trình và quản trị SugarCRM
  • Lập trình và quản trị VTigerCRM
  • Lập trình và quản trị Open ERP
  • Lập trình và quản trị Dolibarr ERP

 

Copyright © Tạo Ứng Dụng, All Rights Reserved. Developed By DVMS | All solution for smartphone & tablet.. Designed By JoomShaper

Tìm kiếm

  • Trang chủ
  • Khóa học
  • Tutorials
    • React Native
  • Đăng ký
  • Tài liệu
    • Thường thức iPhone
    • Mạng xã hội , Social Network
    • Android, ios, Windows phone, Blackberry
    • CRM
    • ERP
    • Joomla, Wordpress, Drupal...
    • Codeigniter, Zend, Phalcon...
    • Magento, Prestashop, opencart ...
    • Tài liệu khác
  • Tuyển dụng
    • Tìm người cùng khởi nghiệp
    • Tuyển thực tập lập trình
  • Chuyển đổi số
    • Chuyển đổi số
    • Kinh tế số
    • Kinh tế chia sẻ
    • Fintech
    • Mạng xã hội
    • insurtech
    • Bất động sản 4.0