THẢO LUẬN

Mar 12th, 2019 5:33 a.m.

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.

0

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 😃

+2

Đú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 😃.

+1

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/

+1

dùng postman cũng set được referrer mà. trình duyệt thì cấm thôi.

+2

Làm thế này thì còn gì là SEO nữa

0

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

+2

Mong anh làm thêm phần 3, series hay, nhiều người mong đợi mà.spongebob-begging-please-meme.jpg

+1

@huukimit Mình đọc log mongo container nhưng k hiểu lỗi lắm, b xem qua giúp.

2019-03-12T02:59:28.544+0000 I CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2019-03-12T02:59:28.546+0000 I CONTROL  [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=281f352eb7bb
2019-03-12T02:59:28.546+0000 I CONTROL  [initandlisten] db version v4.0.6
2019-03-12T02:59:28.546+0000 I CONTROL  [initandlisten] git version: caa42a1f75a56c7643d0b68d3880444375ec42e3
2019-03-12T02:59:28.546+0000 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
2019-03-12T02:59:28.546+0000 I CONTROL  [initandlisten] allocator: tcmalloc
2019-03-12T02:59:28.546+0000 I CONTROL  [initandlisten] modules: none
2019-03-12T02:59:28.546+0000 I CONTROL  [initandlisten] build environment:
2019-03-12T02:59:28.546+0000 I CONTROL  [initandlisten]     distmod: ubuntu1604
2019-03-12T02:59:28.546+0000 I CONTROL  [initandlisten]     distarch: x86_64
2019-03-12T02:59:28.546+0000 I CONTROL  [initandlisten]     target_arch: x86_64
2019-03-12T02:59:28.546+0000 I CONTROL  [initandlisten] options: { net: { bindIpAll: true }, security: { authorization: "enabled" }, storage: { mmapv1: { smallFiles: true } } }

2019-03-12T02:59:28.550+0000 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=478M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=
snappy),file_manager=(close_idle_time=100000),statistics_log=(wait=0),verbose=(recovery_progress),
2019-03-12T02:59:29.276+0000 E STORAGE  [initandlisten] WiredTiger error (17) [1552359569:276435][1:0x7fa2d35b3a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: File exists Raw: [1552359569:276435][1:0x7fa2d35b3a40],
 connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: File exists
2019-03-12T02:59:29.282+0000 I STORAGE  [initandlisten] WiredTiger message unexpected file WiredTiger.wt found, renamed to WiredTiger.wt.456
2019-03-12T02:59:29.284+0000 E STORAGE  [initandlisten] WiredTiger error (1) [1552359569:284034][1:0x7fa2d35b3a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1552359569:284034][1:0x7fa
2d35b3a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
2019-03-12T02:59:29.298+0000 E STORAGE  [initandlisten] WiredTiger error (17) [1552359569:298459][1:0x7fa2d35b3a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: File exists Raw: [1552359569:298459][1:0x7fa2d35b3a40],
 connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: File exists
2019-03-12T02:59:29.306+0000 I STORAGE  [initandlisten] WiredTiger message unexpected file WiredTiger.wt found, renamed to WiredTiger.wt.457
2019-03-12T02:59:29.309+0000 E STORAGE  [initandlisten] WiredTiger error (1) [1552359569:309146][1:0x7fa2d35b3a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1552359569:309146][1:0x7fa
2d35b3a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
2019-03-12T02:59:29.326+0000 E STORAGE  [initandlisten] WiredTiger error (17) [1552359569:326492][1:0x7fa2d35b3a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: File exists Raw: [1552359569:326492][1:0x7fa2d35b3a40],
 connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: File exists
2019-03-12T02:59:29.332+0000 I STORAGE  [initandlisten] WiredTiger message unexpected file WiredTiger.wt found, renamed to WiredTiger.wt.458
2019-03-12T02:59:29.334+0000 E STORAGE  [initandlisten] WiredTiger error (1) [1552359569:334743][1:0x7fa2d35b3a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1552359569:334743][1:0x7fa
2d35b3a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
2019-03-12T02:59:29.337+0000 W STORAGE  [initandlisten] Failed to start up WiredTiger under any compatibility version.
2019-03-12T02:59:29.337+0000 F STORAGE  [initandlisten] Reason: 1: Operation not permitted
2019-03-12T02:59:29.337+0000 F -        [initandlisten] Fatal Assertion 28595 at src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 704
2019-03-12T02:59:29.337+0000 F -        [initandlisten]

***aborting after fassert() failure
+1

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.

0

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 ạ?

0
Mar 12th, 2019 2:41 a.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.

Chi tiết mình tham khảo tại đây: https://security.stackexchange.com/questions/19906/is-md5-considered-insecure

+1

Mấy bài mày mò kiểu này rất hấp dẫn. Cảm ơn tác giả nhé!

+2
Avatar
đã bình luận cho bài viết
Mar 12th, 2019 2:27 a.m.

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.

0

đú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 😄)

+2
Mar 12th, 2019 1:40 a.m.

Thank you! 😃

0

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ỉ :-?

+1

@NDK1410 không có gì, mong rằng mọi người có thể giúp được bạn!

0
Avatar
đã bình luận cho bài viết
Mar 11th, 2019 6:12 p.m.

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.

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí