Tôi đã hack “tơi tả” Web Site của Lotte Cinema như thế nào?

Làm một developer “có tâm”, chúng ta không chỉ phải đảm bảo code chạy được, mà còn phải bảo đảm về bảo mật (với các hệ thống quan trọng). Có nhiều lúc, lỗi bảo mật đến từ chính sự ẩu tả của developer. Hôm nay mình sẽ lôi trang web của Lotte Cinema ra làm mẫu để giải thích cho các bạn.

Lưu ý: Bài viết mang tính chất học thuật, bình luận về kĩ thuật. Mình không ủng hộ, cũng không chịu trách nhiệm nếu bạn mang kiến thức đề cập trong bài ra làm chuyện trái pháp luật! Thân.

Giới thiệu

Tại sao mình lại chọn Lotte Cinema? Đơn giản là cách đây mấy tháng, khi nhắc đến mật khẩu, mình đã nêu ra một lỗ hổng bảo mật khủng khiếp của Lotte Cinema: Lưu mật khẩu dưới dạng text.

Đến nay, lỗ hổng này vẫn chưa được sửa, điều này chứng tỏ hai chuyện: Đội ngũ lập trình web lotte cinema thiếu kiến thức cơ bản về lập trình và cũng không thèm quan tâm gì đến việc bảo trì sửa lỗi. Điều này đồng nghĩa với việc website sẽ có nhiều lỗ hổng để khai thác.

Với logic đó, mình bắt đầu tìm lỗ hỗng của lotte với tâm thế học hỏi. Thật không ngờ, mình tìm được không chỉ một, mà đến tận vài lỗ hổng… cực kì chết người, có thể làm toàn bộ hệ thống ngừng hoạt động.

Continue reading Tôi đã hack “tơi tả” Web Site của Lotte Cinema như thế nào?

Nên học một hay nhiều ngôn ngữ

Gần đây mình nhận được một số câu hỏi về chuyện “Nên tập trung vào 1 ngôn ngữ hay là học nhiều ngôn ngữ”. Đây là một vấn đề gây khá nhiều tranh cãi trong cộng đồng lập trình viên.

Thật ra, không có câu trả lời đúng cho câu hỏi này! Trong nội dung bài viết, mình sẽ phân tích những điểm lợi/hại của mỗi lựa chọn. Tuy nhiên, lựa chọn cuối cùng vẫn là do bản thân các bạn nhé.

Thật ra, ngay từ đầu các bạn đã đặt sai câu hỏi! Thay vì hỏi “nên học một hay nhiều ngôn ngữ”, các bạn nên hỏi là “nên phát triển bản thân theo chiều rộng (generalist) hay chiều sâu (specialist)?”.

tumblr_inline_msvsmsrbld1qz4rgp

Continue reading Nên học một hay nhiều ngôn ngữ

JS Truyền Kì – Chương 3 : Quần hùng cát cứ

Mục lục

Tóm tắt phần trước: NodeJS và hàng loạt các framework ra đời, làm giang hồ đại loạn.

Lưu ý: Chương này có ích cho hầu hết các bạn front-end developer hoặc những bạn làm việc nhiều với JavaScript. Nếu bạn là back-end developer hoặc không dùng javascript thì đọc giải trí cũng được.

Hồi thứ bảy – Thế cục giang hồ

Thuở xưa, chỉ cần rành Javascript và jQuery là có thể độc tẩu giang hồ; thành thục một chút kĩ thuật AJAX nữa là có thể cưỡi mây lướt gió, tiếu ngạo quần hùng. Tiếc thay, thời đấy không còn nữa. Hiện tại, chỉ tính riêng front-end đã có hơn 63 JavaScript framework, con số này vẫn tiếp tục gia tăng (nguồn).

Continue reading JS Truyền Kì – Chương 3 : Quần hùng cát cứ

JS Truyền Kì – Chương 2: Võ lâm dậy sóng

Mục lục

Tóm tắt phần trước: JavaScript ban đầu bị xem là một ngôn ngữ “cùi bắp” ở client side. Với sự ra đời của AJAX và jQuery, JS bắt đầu được sử dụng nhiều hơn 

Hồi thứ tư – Thời đại hậu Ji Qui

Trước đây, hầu hết developer ở server side đều viết được chút ít JS ở client side. Sau này, JS được dùng để xử lý DOM, validate data, truyền nhận dữ liệu từ server. Việc này làm developer phải bỏ nhiều thời gian để code JS ở client side hơn. Vì lẽ đó, giang hồ dần phân hóa thành Tiền Tận Tông (Front-End developer) và Hậu Tận Tông (Back-end developer).

Continue reading JS Truyền Kì – Chương 2: Võ lâm dậy sóng

JS Truyền Kì – Chương 1: Lược sử giang hồ

Lời tựa

Javascript là một ngôn ngữ mạnh mẽ, được sử dụng ở rất nhiều nơi từ front end cho đến back end. Phàm là lập trình viên, hễ mang cái danh web developer đều phải biết chút ít JavaScript.

Vì lẽ đó, hôm nay tại hạ sẽ dùng phong cách kiếm hiệp pha lẫn hư cấu để kể dăm chuyện xưa về lịch sử JavaScript và đánh giá chung về tình hình JavaScript hiện tại. Vì có một phần hư cấu nên các đạo hữu đọc xong nhớ kiểm chứng lại thông tin nhé.

Tác phẩm võ hiệp này bao gồm 3 chương, hoặc có thể dài hơn tùy hứng của tác giả:

Continue reading JS Truyền Kì – Chương 1: Lược sử giang hồ

Góc phởn – Sự giống nhau đến kì lạ giữa lập trình và nấu ăn

Lưu ý: Bài viết có nhiều hình ảnh nhạy cảm gây kích thích vị giác, không nên đọc khi đang đói bụng

Ngày trước, khi còn ở Việt Nam, mình chả phải nấu ăn bao giờ. Từ hồi đi qua UK đu học, vì đồ ăn bên ngoài vừa mắc vừa dở nên mình phải lúi húi xuống bếp tự nấu ăn. Sau một thời gian lăn lê bếp núc, trình độ nấu ăn của mình cũng đã tăng lên một cảnh giới nhất định. Giờ mình đã có thể vỗ ngực tự hào mình là thằng coder nấu ăn ngon nhất và là thằng đầu bếp code giỏi nhất =)).

Nấu ăn được một thời gian, mình chợt ngộ ra đạo lý “vạn pháp quy nhất, trăm sông đổ về một biển” trong võ học. Hóa ra giữa lập trình và nấu ăn có nhiều điểm giống nhau đến lạ kì!! Thế là mình vội vàng dốc hết tâm sức ra viết bài này, các bạn có thể vừa đọc vừa giải trí và suy ngẫm nhé.

22
Ảnh minh họa, món này không phải mình nấu đâu nha

Continue reading Góc phởn – Sự giống nhau đến kì lạ giữa lập trình và nấu ăn

Hai sai lầm hay gặp khi tự code một trang web… bán hàng

Làm lập trình viên, hẳn ai cũng biết tới khái niệm … web bán hàng. Code một trang web bán hàng là cách rất tốt để áp dụng ngôn ngữ/công nghệ mới. Thông qua các chức năng đăng kí, đăng nhập, show sản phẩm, ta học được cách phân quyền, routing, phân trang, xử lý business logic.

Nhiều bạn sinh viên cho rằng code web bán hàng là một chuyện đơn giản, phần nhiều chỉ là thêm bớt xóa sửa. Thật vậy chăng? Hãy đọc bài viết này để xem bạn có mắc phải hai sai lầm dưới không nhé nhé.

Continue reading Hai sai lầm hay gặp khi tự code một trang web… bán hàng

Tản mạn – Văn tế Ya Hu – Còn chút gì để nhớ

Bên UK lúc này đang là mùa hè, nhưng chẳng hiểu sao cứ hay mưa hòai. Từng cơn mưa rả rích làm mình nhớ nhà, nhớ gấu, nhớ chuyện ngày xưa. Mấy hôm nay lên mạng thì nghe tin Yahoo lừng lẫy một thời nay phải bán thân với cái giả rẻ mạt là 4.5 tỷ USD (Còn rẻ hơn cả mình đi mát xa hớt tóc gội đầu). Cám cảnh thương hải tang điền, thương kiếp hồng nhan bạc phận, mình ngồi viết bài này đưa tiễn Ya Hu, kể về những kỉ niệm vui buồn, về “một thời để nhớ”.

Yahoo-Messenger-game4v

Continue reading Tản mạn – Văn tế Ya Hu – Còn chút gì để nhớ

Series Phản Phác Quy Chân – Luận về Technical Debt – Nợ kiếp này, duyên kiếp trước

Technical Debt (Nợ kĩ thuật) là một món nợ mà hầu như lập trình viên nào cũng phải gánh trong quá trình làm việc. Hẳn bạn sẽ thắc mắc: Hầu hết lập trình viên chúng mình đều là những con người siêng năng chăm chỉ, không cờ bạc gái gú, hết giờ làm là đi nhậu, mát xa … nhầm, về nhà với vợ con. Chúng ta không vay mượn ai bao giờ thì làm sao có nợ???

Muốn biết câu trả lời, hãy đọc bài viết để tìm hiểu thêm về Technical Debt nhé! Đây là một khái niệm khá quan trọng và bổ ích đấy.

2708226548_b80e14f366_b

Continue reading Series Phản Phác Quy Chân – Luận về Technical Debt – Nợ kiếp này, duyên kiếp trước