Điểm:1

Loại trừ iframe nhúng google doc khỏi quy tắc viết lại nginx?

lá cờ ua

Tôi hy vọng rằng ai đó có thể giúp tôi ở đây vì kiến ​​thức của tôi rất hạn chế về những thứ liên quan đến máy chủ.

Tôi có một trang web WordPress nơi tôi muốn giới hạn quyền truy cập thư mục /wp-content/uploads/ chỉ cho những người dùng đã đăng nhập. Đối với điều này, tôi đã sử dụng giải pháp thay thế như được chỉ định trong liên kết sau trên máy chủ nginx:

https://wordpress.stackexchange.com/questions/37144/how-to-protect-uploads-if-user-is-not-logged-in

Và giải pháp này hoạt động tốt. Tuy nhiên, có một vấn đề.

Tôi có một số tệp pdf được nhúng qua google doc được nhúng trên một số trang nhất định. Google doc nhúng sử dụng để tải các tệp PDF như sau:

<iframe src="//docs.google.com/viewer?url=https://link-to-file.pdf&amp;hl=en_US&amp;embedded=true" class="" style="width:100%; height:500px; border: none;" scrolling="no"></iframe>

Quy tắc nginx của tôi như sau:

vị trí ~* /(?:uploads)/* {
   viết lại /wp-content/uploads/(.*)$ /dl-file.php?file=$1;
}

Làm cách nào tôi có thể loại trừ iframe ở trên hoặc //docs.google.com url từ quy tắc này?

Bất cứ sự giúp đỡ nào cũng được đánh giá cao.

Cảm ơn

Bakar

lá cờ kz
Bằng cách loại trừ trình xem tài liệu của Google, về cơ bản, bạn đang cung cấp công khai các tệp PDF...vậy tại sao không công khai các tệp PDF? Ngoài ra, (các) địa chỉ IP mà Google yêu cầu các tài liệu này có nhất quán không?
Điểm:0
lá cờ pl
JFK

Bạn có thể sử dụng người giới thiệu (http://nginx.org/en/docs/http/ngx_http_referer_module.html#valid_referers)

valid_referers không bị chặn server_names docs.google.com;

Ngoài ra, bạn chỉ có thể sử dụng biến $invalid_referer trong khối vị trí của mình.

nếu ($invalid_referer) {
    viết lại /wp-content/uploads/(.*)$ /dl-file.php?file=$1;
}
bakar avatar
lá cờ ua
Xin lỗi nhưng điều này không làm việc. Có vẻ như nó thậm chí không xác thực quy tắc nginx cũ.
lá cờ us
Có thể trình xem `doc.google.com` không gửi đúng tiêu đề liên kết giới thiệu HTTP khi nó yêu cầu hiển thị tệp. Nếu đúng như vậy, bạn cần tìm một số trình xem PDF khác.
JFK avatar
lá cờ pl
JFK
Thêm $http_refferer vào nhật ký của bạn (https://docs.nginx.com/nginx/admin-guide/monitoring/logging/) và kiểm tra những gì, nếu có, google sẽ gửi cho bạn.
bakar avatar
lá cờ ua
@TeroKilkanen, cảm ơn bạn đã nhận xét. Bạn nói đúng, không có người giới thiệu trong nhật ký truy cập. Cuối cùng, tôi đã quyết định sử dụng một plugin xem pdf khác.
bakar avatar
lá cờ ua
@JFK, cảm ơn bạn đã nhận xét. Có vẻ như google không gửi bất kỳ liên kết giới thiệu nào và đó là nguyên nhân khiến quy tắc trên không hoạt động. Cảm ơn sự giúp đỡ btw.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.