Thứ Sáu, 9 tháng 6, 2017

About me

  Đôi điều về bản thân
Xin chào các bạn độc giả. Tôi là Khanh, hiện đang là sinh viên năm 4.

  Về blog
Đây là một blog riêng của tôi viết về đủ thứ trên đời này liên quan đến công nghệ, về những thứ hay ho, những kinh nghiệm đời thực tôi học được trong trường, ngoài đời.
Với niềm yêu thích việc lập trình, thông qua blog này tôi sẽ chỉ cho các bạn thấy lập trình không hề khô khan như chúng ta vẫn nghĩ.
Tôi viết blog này với mục đích nâng cao khả năng diễn đạt, trình bày vấn đề, cũng như chia sẻ kinh nghiệm và kiến thức cho mọi người. Mọi comment góp ý hay ném đá, miễn là ko mang tính xúc phạm, đều được hoan nghênh.

Chúc các bạn có những phút giây vui vẻ và tìm được những kiến thức bổ ích khi đọc blog của mình!

Thứ Hai, 5 tháng 6, 2017

[The Fact]Xóa bỏ những ảo tưởng về Lập Trình Viên

Bất kỳ công việc nào khi bạn khởi đầu cũng sẽ gặp nhiều khó khăn, thử thách. Dù yêu thích công nghệ, dù đam mê khám phá, nhiều bạn trẻ vẫn ngần ngại bước vào thế giới lập trình. Liệu để trở thành lập trình viên có khó như mọi người nghĩ không?






Framgia

Thứ Tư, 10 tháng 5, 2017

[Chia sẻ]10 website dạy lập trình miễn phí



Nếu chưa có điều kiện theo học các khóa đào tạo chính quy, bạn hoàn toàn có thể học kiến thức lập trình cơ bản trên mạng nhờ những website dạy miễn phí như GitHub, edX hay Free Code Camp.


Dưới đây là 10 website để bạn bắt đầu làm quen với lập trình:
1. Codecademy
Đúng như tên gọi, Codecademy dạy bạn mọi thứ cơ bản để lập trình. Nó làm điều này thông qua các khóa học cụ thể, cung cấp đủ nguyên liệu để học theo chủ đề lựa chọn. Codecademy có nhiều đề tài từ học một ngôn ngữ cụ thể (HTML, Java, Python) đến học cách viết một website. Nếu thực sự yêu thích Codecademy, bạn có thể mua gói trả tiền để mở khóa các chương trình hấp dẫn.
2. edX
Dù edX là một website cung cấp tất cả khóa học theo yêu cầu, nó có khá nhiều các khóa học lập trình máy tính trong thư viện. edX do hai đại học hàng đầu thế giới là MIT và Harvard thành lập năm 2012, vì thế bạn chắc chắn được tiếp cận các khóa học chất lượng ở đây. Bạn có thể tự học hoặc chọn giảng viên.
3. MIT Open Courseware
Nói về MIT, không thể không nhắc đến chương trình học trực tuyến của họ. Bạn có thể tìm kiếm trong thư viện hoặc duyệt trong mục khoa học máy tính để tìm các khóa học liên quan. Có khá nhiều chương trình, chẳng hạn Nhập môn khoa học máy tính, C primer, và chúng đều miễn phí. Có một chút khác biệt so với các website lập trình miễn phí khác là bạn tải về các nguyên liệu thô thay vì video hay bài học.
4. Khan Academy
Nếu muốn một bộ sưu tập video để theo dõi ở nhà, Khan Academy là những gì bạn cần. Chỉ cần duyệt qua mục lập trình của họ và chọn ra những gì bạn thích nhất. Các chủ đề cơ bản trải rộng từ lập trình là gì cho đến các tính năng lập trình cơ bản.
5. Udemy
Dù Udemy tính phí các khóa học, nó vẫn cung cấp một số khóa miễn phí để học thử. Bạn có thể chọn “Free” trong bộ lọc giá khi tìm kiếm. Mỗi khóa học lại có xếp hạng và số người tham dự, đồng nghĩa bạn có thể khoanh vùng khóa nào đáng học.
6. Free Code Camp
Free Code Camp là website khá thú vị: Bạn học lập trình trực tuyến cùng họ, sau khoảng 1 năm, bạn có thể tham gia phát triển các dự án nguồn mở cho tổ chức phi lợi nhuận. Ý tưởng là bạn sử dụng thời gian và kinh nghiệm tại Free Code Camp để chuyển hóa thành danh mục ngoài đời thực, giúp tìm được việc làm. Free Code Camp yêu cầu tạo tài khoản GitHub trong quá trình đăng ký.
7. GitHub
GitHub chứa đầy các mẹo lập trình. Nó được Victor Felder duy trì, người tạo ra cơ sở dữ liệu nguyên liệu lập trình miễn phí và hợp pháp. Kết quả là bạn có một kho tài liệu để học và tận dụng.
8. The Code Player
Trong số tất cả các website dạy lập trình miễn phí, The Code Player là lựa chọn tốt cho những ai muốn học theo ví dụ. Chọn một khóa học, nó sẽ cung cấp cho các bạn từng bước xây dựng cái gì đó từ đầu. Sau đó, bạn có thể tự lập trình hoặc sao chép đoạn mã cho dự án riêng.
9. The Odin Project
The Odin Project giúp bạn biết được cách phát triển một website như thế nào. Các khóa học của nó cho phép bạn làm quen với các ngôn ngữ như Ruby on Rails, HTML5, Javascript… Điều khiến Odin Project đặc biệt thú vị là sau khi học xong, bạn được cung cấp một số mẹo khi đăng ký làm lập trình web.
10. Code Wars
Code Wars là lựa chọn tuyệt vời khi bạn đã học xong các khóa cơ bản về lập trình và muốn có một nơi để vừa học, vừa thử thách kỹ năng. Bạn có thể tham gia vào các bài thi của cộng đồng (kata) liên quan đến ngôn ngữ mà bạn học. Viết giải pháp và gửi lên, sau khi cuộc thi kết thúc, mọi giải pháp đều được công bố. Bạn có thể xem mọi người xử lý vấn đề như thế nào và rút ra bài học cho mình.
khanh phạm

Thứ Năm, 6 tháng 4, 2017

TOOL TEST SECURITY – OWASP ZAP – SERIES WEB APPLICATION SECURITY

1. NỘI DUNG

  • Giới Thiệu
  • Tool Test Security – OWASP ZAP
  • Một số chức năng của OWASP
  • Các Bài Viết Liên Quan

2. GIỚI THIỆU

  • OWASP là từ viết tắt của The Open Web Application Security Project (dự án mở về bảo mật ứng dụng Web), dự án là một cộng đồng chung giúp các tổ chức có thể phát triển, mua hoặc bảo trì các ứng dụng an toàn. Ở OWASP ta sẽ tìm thấy nhiều thứ “miễn phí” và “mở” (free and open) sau đây:
    • Công cụ và các tiêu chuẩn về an toàn thông tin
    • Sách về kiểm tra bảo mật, lập trình an toàn và các bài viết về bảo mật mã nguồn
    • Thư viện và các tiêu chuẩn điều khiển bảo mật
    • Các chi nhánh của hội ở khắp nơi trên thế giới
    • Những nghiên cứu mới nhất
    • Những buổi hội thảo toàn cầu
    • Địa chỉ thư tín chung
    • Và nhiều thứ khác, xem thêm tại www.owasp.org
  • OWASP cũng đưa ra danh sách top 10 các rủi ro:
    1. Injection: Tiêm nhiễm mã độc
    2. Broken Authentication and Session Management: Sai lầm trong kiểm tra định danh và phiên làm việc
    3. Cross-Site scripting(XSS): Thực thi mã Script xấu
    4. Insecure Direct Object Reference: Đối tượng tham chiếu thiếu an toàn
    5. Security Misconfiguration : Sai sót cấu hình an ninh
    6. Sensitive Data Exposure: Lộ dữ liệu nhạy cảm
    7. Missing Function Level Access Control : Mất kiểm soát mức độ truy cập chức năng
    8. Cross Site Request Forgery (CSRF): Giả mạo yêu cầu
    9. Using Known Vulnerable Components: Tấn công sử dụng các thành phần với các lỗ hổng đã biết
    10. Unvalidated Redirects and Forwards: Chuyển hướng và chuyển tiếp không an toàn
  • Tool Test Security – OWASP ZAP

3. TOOL TEST SECURITY – OWASP ZAP

  • CÀI ĐẶT

    • Cài đặt và sử dụng theo như link sau:https://youtu.be/sX3vaxsUcC0
  • Một số chức năng chính của OWASP ZAP:
    • The Spiders: crawler ( sử dụng AJAX Spiders để scan các AJAX request )
    • Proxy: Recorder , để giúp tạo những data hợp lệ khi attack.
    • Active và Passive Scanning: quét lỗ hổng chủ động và bị động
    • Fuzzer: gửi những data không hợp lệ, không mong muốn.
    • Changing requests and Responses : allows  you to specify as complex a criteria as you need

5. SỬ DỤNG OWASP TEST THỬ SQL INJECTION CỦA DVWA

  • Security level: low, OWASP ZAP scan:
  • Khi Sử dụng thử chức năng Fuzz với thiết lập của của ID={FUZZ}, FUZZ là dữ liệu của MYSQL Injection để test.
  
  • Kết quả test với Fuzz (Các nhãn Reflected là những nhãn đáng suy nghĩ. Có khả năng xảy ra đặc biệt trong nhóm này. ):
  • Security Level: impossible:
    • Active Scan:
    • Fuzz – MYSQL Injection Scan:

CROSS-SITE SCRIPTING (XSS) – SERIES WEB APPLICATION SECURITY

1. NỘI DUNG

  • Giới Thiệu
  • Cross-Site Scripting  (XSS)
  • Cách Phòng Chống
  • Các Bài Viết Liên Quan

2. GIỚI THIỆU

  • Cross Site Scripting (XSS) là gì ? Là một kiểu tấn công cho phép hacker chèn vào những đoạn script độc hại (thông thường là javascript hoặc HTML) vào website và sẽ được thực thi ở trình duyệt người dùng.. Các thông tin có thể bị đánh cắp qua XSS: Email, Mật khẩu, Cookie truy cập web nào đó của người dùng.
  • Mục đích tấn công của XSS: Lấy Cookie của người dùng có thể để giả mạo phiên làm việc truy cập. Keylogging ghi lại những thao tách của người dùng, Phishing: thay đổi cấu trúc trang web hiện tại để đánh lừa người dùng: nhập username, password, thẻ tín dụng…

3. CROSS-SITE SCRIPTING (XSS)

  • Một kịch bản cho cách thức tấn công lỗi XSS như sau:
    1. User truy cập vào 1 trang web (của Malicious Attacker)  hoặc nhận được mail, cái mà có chứa nội dung nguy hiểm
    2. User click vào link mà nội dung kẻ tấn công gửi cho. Nội dung của link chứa script, script này sẽ nhúng vào trang web mà kẻ tấn công muốn phá hoại
    3. WebSite bị tấn công sẽ thực thi yêu cầu không mong muốn của User thông qua script đã được nhúng
    4. Brower của người dùng thực thi script không mong muốn, có thể gửi các thông tin mà hacker mong muốn.
  • Xem xét các thức hoạt động
    • Web Application có một chức năng sau

    • Một ứng dụng web cho việc nhắn tin giữa các user với nhau. Người Dùng nhập tên của mình và message muốn gửi cho toàn bộ người khác trong hệ thống. Member khác vào sẽ đọc được nội dung mà người khác đã gửi lên hệ thống. Chức năng này giống như chức năng comment của facebook. Mọi người đều đọc được hết các comment.
    • Để kiểm tra xem ứng dụng này có thể lợi dụng lỗ hổng XSS hay không ta có thể test với nội dung sau của message: <script>console.log(“test xss!!!”)</script>. Nếu Log trên được bắn ra thì ứng dụng này có thể lợi dụng lỗ hổng XSS để thực hiện hành vi không mong muốn với người khác. Để test chức năng này đặt security level: low. Load lại trang web thì thấy kết quả như sau thì sẽ có thể lợi dụng lỗ hổng XSS:

    • Nhìn vào kết quả trên thấy rằng hệ thống đang bị lỗi xss. Javascript được nhúng vào phần message vẫn chạy được một cách bình thường.
    • Khi hacker chỉ alert(1); , console.log(“xyz abc”) thì thấy rằng cái lỗi này chẳng có gì phải đáng lo lắng. Mà công nhận không đáng lo thật.
  • Phức tạp hóa vấn đề
    • Với ứng dụng này thử challenge bằng cách ăn cắp phiên làm việc của các victim nếu nhảy vào xem chức năng message trên.
    • Vai trò trong ví dụ
      • Hacker: user smithy của hệ thống
      • Victim: user admin của hệ thống
    • Mô hình test thử:

  • Nội dung của javascript để nhúng vào website nơi victim truy cập:
  • Nội dung gửi đi tới server hacker là cookie của trang website: document.cookie, dữ liệu được mã hóa dưới dạng Base64 dùng hàm bota
  • Lý do dùng Base64 là để có thể gửi cookie như một value.
  • Để test tác giả dùng server cá nhân test
  • Bên Server của hacker (dùng nodejs) có nội dung dạng như sau
  • Kết quả
    1. Hacker nhúng javascript vào phần message
    2. Victim vào phần message & trả về các message trong đó có message của hacker & gửi thông tin cookie tới hacker:
    3. Tại Server của hacker sẽ nhận được thông tin sau:
    4. Hacker smithly đổi cookie PHPSESSID và refresh lại trang web:
      1. Như vậy với việc lấy được cookie, hacker smithy đã có thể vào với tư cách là admin. Đến đây smithy có thể làm mọi thao tác với quyền hạn mới của admin. Còn làm được gì thì tùy website.
      2. Tưởng tượng lỗi này mà facebook bị dính, nếu Hacker vào được facebook của người yêu thì chắc là Hack được account của người yêu sẽ là một sai lầm khi đọc các tin nhắn :D:D:D

4. CÁCH PHÒNG CHỐNG