Bài viết hay! Tuy nhiên để tạo ra được 1 block đơn giản như trên mà nhìn số lượng code khá dài và vất vả. Đối với những ai đang dùng ACF thì cực kỳ đơn giản để tạo được 1 block (chỉ tỉnh bằng phút theo hướng dẫn tại đây https://www.advancedcustomfields.com/blog/acf-5-8-introducing-acf-blocks-for-gutenberg/).
Nhược điểm của ACF lại lưu vào database post_meta. Cách của bạn thì lưu thẳng vào post_content nên lại nhẹ nhàng vì ko phải query nhiều.
Bây giờ developer cần nhất 1 cách nào đó vừa viết nhanh, vừa ko phải lưu vào post_meta như ACF thì tuyệt vời.
Thực ra mình nghĩ Twitter họ cũng xác định ko cần tốn quá nhiều công sức vào việc cố gắng giấu càng nhiều càng tốt(vì nó có thể tốn công), nhưng đó cũng là 1 cách mới trong việc xây dựng app ma đội dev bên đó vận dụng cho người khác học hỏi
mình ko dùng vue dev tool, mình inspect lên check tab source thôi :v có gì nó đều ở đó hết mà hehe, tất nhiên là đều được minify rồi nên đều khó đọc :-? hehe hóng bài chặn inspect, mình cũng chưa biết nhiều lắm thanks nhé, bài viết rất tâm huyết
Bạn kiểm tra xem cái service mongo nó đang running hay là không trước đã. Sau đó xem logs của cái service mongo xem nó có bắn gì ra không. Có thể mongo không chạy, không connect được database cũng có thể do sai username/password của db chẳng hạn... Nhiều lắm! Bạn check log trước chứ mọi người xem cấu hình rồi đoán mò lỗi thì cũng không hay lắm.
Chào bạn, ở bài viết bạn mình thấy nói "điều lệ thứ 4" - Hai thông điệp khác nhau thì nhận về 2 chuỗi băm khác nhau và rằng MD5 không tốt bởi vì "phạm vào "điều lệ thứ 4", 2 chuỗi băm được tạo ra có thể trùng nhau từ 2 thông điệp khác nhau".
Việc chuỗi băm được tạo ra có thể trùng nhau từ 2 thông điệp khác hoàn toàn có thể xảy ra và điều này phụ thuộc vào độ dài chuỗi băm kết quả, hàm băm nào cũng vậy.
Nguyên nhân chính xác của MD5 không tốt phải là do nó quá nhanh như ở phía dưới bạn đề cập mới đúng.
việc tối ưu dữ liệu thì còn tùy thuộc vào cách em truyền các param filter, đương nhiên với lượng data lớn thì em phải limit data trả về bằng PageSize hoặc MaxTop.
OData cũng chỉ truyền câu query xuống data rồi lấy dữ liệu về thôi, chứ nó ko load hết dữ liệu lên rồi mới filter data đâu. Nên em có thể tối ưu việc lấy data bằng cách optimize dưới database (như đánh index), đồng thời limit dữ liệu trả về để không quá nhiều.
đúng bạn . Cái bạn xem ở Inspect là DOM sau khi đc render ra, nếu họ dùng những công nghệ khác mà không được xem View Page Source thì sẽ khó hơn nhiều. mình không nói trước là Vue thì bạn sẽ khó tìm ra hơn, mình mà dùng server-rendering mà các bạn không View-page-source thì có dễ dàng đoán ra hay ko? Hay nếu mình dùng các công nghệ khác như React, Angular,... mà Wappalyzer không detect được hay devtool của chúng không detect được thì cũng khó đấy .
Cái chính là Twitter là người đi đầu để áp dụng 1 cách mới trong việc bảo vệ code của mình, không phải tất cả code nhưng là bước nền để mọi người nhìn vào và tương lai sẽ có nhiều cách độc đáo hơn
Lần tới mình sẽ share 1 bài post khác để chặn luôn người dùng bấm inspect nhé (mình đang nghiền ngẫm )
THẢO LUẬN
Bài viết hay! Tuy nhiên để tạo ra được 1 block đơn giản như trên mà nhìn số lượng code khá dài và vất vả. Đối với những ai đang dùng ACF thì cực kỳ đơn giản để tạo được 1 block (chỉ tỉnh bằng phút theo hướng dẫn tại đây https://www.advancedcustomfields.com/blog/acf-5-8-introducing-acf-blocks-for-gutenberg/). Nhược điểm của ACF lại lưu vào database post_meta. Cách của bạn thì lưu thẳng vào post_content nên lại nhẹ nhàng vì ko phải query nhiều. Bây giờ developer cần nhất 1 cách nào đó vừa viết nhanh, vừa ko phải lưu vào post_meta như ACF thì tuyệt vời.
Mình hiểu ý của bạn :3.
Thực ra mình nghĩ Twitter họ cũng xác định ko cần tốn quá nhiều công sức vào việc cố gắng giấu càng nhiều càng tốt(vì nó có thể tốn công), nhưng đó cũng là 1 cách mới trong việc xây dựng app ma đội dev bên đó vận dụng cho người khác học hỏi
Đúng là mình thấy SEO sẽ bị ảnh hưởng. Bải này content mình ko tập trung vào SEO. Cách áp dụng vào việc bạn dùng cho mục đích gì.
Như twitter họ seo lánding page thôi là cũng đã top -1 trên gg rồi
Và như mình thấy (sau khi đã thử search với google) thì Twitter họ vẫn SEO rất tốt
.
mình có từng viết 1 bài về chặn inspect ở đây
) bạn có thể tham khảo, có thể bây giờ đã có cách mới hơn
https://fromnoobstogeeks.com/2018/08/31/content-trick/
dùng postman cũng set được referrer mà. trình duyệt thì cấm thôi.
Làm thế này thì còn gì là SEO nữa
mình ko dùng vue dev tool, mình inspect lên check tab source thôi :v có gì nó đều ở đó hết mà hehe, tất nhiên là đều được minify rồi nên đều khó đọc :-? hehe hóng bài chặn inspect, mình cũng chưa biết nhiều lắm
thanks nhé, bài viết rất tâm huyết
Mong anh làm thêm phần 3, series hay, nhiều người mong đợi mà.
@huukimit Mình đọc log mongo container nhưng k hiểu lỗi lắm, b xem qua giúp.
Bạn kiểm tra xem cái service mongo nó đang running hay là không trước đã. Sau đó xem logs của cái service mongo xem nó có bắn gì ra không. Có thể mongo không chạy, không connect được database cũng có thể do sai username/password của db chẳng hạn... Nhiều lắm! Bạn check log trước chứ mọi người xem cấu hình rồi đoán mò lỗi thì cũng không hay lắm.
Mấy anh cho em hỏi, hình như đợt này FB không cho GET email được nữa phải không ạ?
Chào bạn, ở bài viết bạn mình thấy nói "điều lệ thứ 4" - Hai thông điệp khác nhau thì nhận về 2 chuỗi băm khác nhau và rằng MD5 không tốt bởi vì "phạm vào "điều lệ thứ 4", 2 chuỗi băm được tạo ra có thể trùng nhau từ 2 thông điệp khác nhau".
Việc chuỗi băm được tạo ra có thể trùng nhau từ 2 thông điệp khác hoàn toàn có thể xảy ra và điều này phụ thuộc vào độ dài chuỗi băm kết quả, hàm băm nào cũng vậy.
Nguyên nhân chính xác của MD5 không tốt phải là do nó quá nhanh như ở phía dưới bạn đề cập mới đúng.
Chi tiết mình tham khảo tại đây: https://security.stackexchange.com/questions/19906/is-md5-considered-insecure
Mấy bài mày mò kiểu này rất hấp dẫn. Cảm ơn tác giả nhé!
việc tối ưu dữ liệu thì còn tùy thuộc vào cách em truyền các param filter, đương nhiên với lượng data lớn thì em phải limit data trả về bằng PageSize hoặc MaxTop. OData cũng chỉ truyền câu query xuống data rồi lấy dữ liệu về thôi, chứ nó ko load hết dữ liệu lên rồi mới filter data đâu. Nên em có thể tối ưu việc lấy data bằng cách optimize dưới database (như đánh index), đồng thời limit dữ liệu trả về để không quá nhiều.
đúng bạn
. Cái bạn xem ở Inspect là DOM sau khi đc render ra, nếu họ dùng những công nghệ khác mà không được xem View Page Source thì sẽ khó hơn nhiều. mình không nói trước là Vue thì bạn sẽ khó tìm ra hơn, mình mà dùng server-rendering mà các bạn không View-page-source thì có dễ dàng đoán ra hay ko? Hay nếu mình dùng các công nghệ khác như React, Angular,... mà Wappalyzer không detect được hay devtool của chúng không detect được thì cũng khó đấy
.
Cái chính là Twitter là người đi đầu để áp dụng 1 cách mới trong việc bảo vệ code của mình, không phải tất cả code nhưng là bước nền để mọi người nhìn vào và tương lai sẽ có nhiều cách độc đáo hơn
Lần tới mình sẽ share 1 bài post khác để chặn luôn người dùng bấm inspect nhé
(mình đang nghiền ngẫm
)
Thank you!
Mình thấy cách này cũng chặn được phần nào nhưng kp toàn bộ, bật inspect lên cũng có thể thấy được source vs js files mà nhỉ :-?
@NDK1410 không có gì, mong rằng mọi người có thể giúp được bạn!
mình đã thử nhiều lần nhưng không thể thay đổi được giọng nữ default. bạn có thể hỗ trợ mình được không.
bai viet huu ich qua. cam on tac gia