Skip to main content

Posts

Showing posts with the label Django

[Sec|Django] Social media fingerprinting

Mới đây một website đã được tung ra để tự động hiển thị những trang mạng xã hội mà người dùng đã login vào. Việc này trông có vẻ đầy hư cấu và có cảm giác mình bị "hack", thế nhưng nó không phải là mới, dựa trên một lỗ hổng bảo mật mà nhiều hãng không thèm fix. Nó có tên "Social media fingerprinting". https://robinlinus.github.io/socialmedia-leak/#updates Cơ chế để trang này hoạt động rất đơn giản: Nếu website X cho phép redirect tới một địa chỉ (đặc biệt) khác thì tức là user đã đăng nhập. Nếu không redirect được đến địa chỉ đó thì có vẻ như user chưa đăng nhập hoặc site đã fix lỗi.

[Django] dùng cùng 1 database cho dev, test và production

Đây không phải là điều gì mới lạ, cũng không giành riêng cho django . Nhưng sự hấp dẫn của SQLite -  đơn giản - không phải cài đặt cấu hình - là một nguyên nhân khiến các developer vẫn dùng nó trong môi trường dev phần mềm trên máy họ, khi mà ở production lại dùng database khác - như PostgreSQL. Kết hợp với sức mạnh che giấu bên dưới của ORM , không ai nhận ra sự khác biệt, cho đến một ngày (sau 1 - 2 tháng trời không có gì xảy ra)... Lệnh migrate trên CI server fail mà ở trên máy vẫn chạy, khiến developer mất vài tiếng để tìm ra nguyên nhân và khắc phục - chuyện mà nếu như từ đầu, cùng dùng một database, sẽ không bao giờ xảy ra. Bài học: các môi trường dev - testing - staging - production, càng giống nhau, càng tốt 😝🤑 PS: chiến dịch ngày nào cũng viết một cái gì đó đã quay trở lại, không đảm bảo lợi hại như xưa 😂

Django 1.8 migrate siêu tốn ram, đừng khóc!

Django 1.8 là phiên bản LTS ở thời điểm hiện tại - tức nó sẽ được hỗ trợ dài lâu và có thể coi là phiên bản ổn định nhất. Thế nhưng có một lỗi khá khó chịu, khi chạy migrate sẽ rất chậm và tốn RAM - với một project có dùng Django CMS, khi chạy lệnh ``manage.py migrate`` có thể đốt tới 2 GB RAM. Nếu mang Django 1.9 ra so, hẳn sẽ thấy được bản này nhanh và tốn ít RAM hơn rất nhiều lần. Và rõ ràng đây là bug! https://code.djangoproject.com/ticket/24743 https://code.djangoproject.com/ticket/24745 Bug này đã được giải quyết, nhưng chỉ có cho bản 1.9 và không được backport lại cho 1.8. Bản fork backport lại fix này có thể lấy ở đây:

Django

Django đọc là gieng gâu ( JANG -oh). Chữ D là âm câm, không phát âm. Nghe phát âm ở: http://red-bean.com/~adrian/django_pronunciation.mp3 Django là tên của Python web framework phổ biến nhất vũ trụ. Được đặt tên theo Django Reinhardt - một trong những guitarist vĩ đại nhất mọi thời đại. Cùng nghe một album của ông: Tham khảo. https://docs.djangoproject.com/en/1.8/faq/general/#what-does-django-mean-and-how-do-you-pronounce-it https://en.wikipedia.org/wiki/Django_Reinhardt P/s: Ngoài ra cũng có một bộ phim tên là "Django Unchained" rất nổi tiếng và đã thắng 2 giải Oscar.

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG