Score:2

การแก้ไขการแวะผ่านไดเรกทอรีสำหรับการกำหนดค่า nginx

ธง in

ฉันพบว่าเว็บไซต์ของฉันมีปัญหานี้และฉันไม่สามารถแก้ไขได้ ฉัน ลองหลายสิ่งหลายอย่างเช่นตรวจสอบว่าตำแหน่งนำหน้าพาเรนต์สำหรับคำสั่งนามแฝงของ Nginx ลงท้ายด้วยตัวคั่นไดเรกทอรีหรือไม่ แต่ก็ยังไม่มีโชค Merge_slashes เปิด - เป็นการตั้งค่าเริ่มต้น ฉันได้อ่านเกี่ยวกับ AppArmour หรือ SELinux แล้ว นั่นคือวิธีที่จะไป? ฉันมีอูบุนตู 18 กล่าวอีกนัยหนึ่งคือ ฉันสามารถดาวน์โหลดไฟล์นี้ได้ http://mywebsite.com///etc/passwd และฉันต้องการหลีกเลี่ยงสิ่งนี้ ความช่วยเหลือใด ๆ ที่ชื่นชม นี่คือการกำหนดค่าของฉัน:

เซิร์ฟเวอร์ {
  ฟัง 80;
  ชื่อเซิร์ฟเวอร์
    .mysite.com;

 กลับ 301 https://mysite.com$request_uri;
}

เซิร์ฟเวอร์ {

ชื่อเซิร์ฟเวอร์
  www.mysite.com;
    ฟัง 443 ssl http2;
    ssl_prefer_server_ciphers เปิด;
    ssl_session_cache ที่ใช้ร่วมกัน: SSL:10m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    ssl_ciphers '......
    ssl_certificate /...crt;
    ssl_certificate_key /..key;

    กลับ 301 https://mysite.com$request_uri;
}
เซิร์ฟเวอร์ {

ชื่อเซิร์ฟเวอร์
  mysite.com;
    ฟัง 443 ssl http2;
    ssl_prefer_server_ciphers เปิด;
    ssl_session_cache ที่ใช้ร่วมกัน: SSL:10m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    ssl_ciphers '...
    ssl_certificate /...crt;
    ssl_certificate_key /.....คีย์;

    add_header x-frame-options "SAMEORIGIN" เสมอ;
    add_header x-xss-protection "1; mode=block" เสมอ;
    add_header X-Content-Type-Options nosniff;
    add_header เข้มงวดการขนส่งความปลอดภัย "อายุสูงสุด = 63072000; includeSubdomains; $

    รูท /var/www/www.mysite.com;
    ดัชนี index.php;

  client_max_body_size 10M;
  access_log /var/log/nginx/mysite.com.log;
  error_log /var/log/nginx/mysite.com.error.log ข้อผิดพลาด;

ที่ตั้ง / {
    try_files $uri $uri/ /index.php;
}

สถานที่ /ช้อปปิ้ง/ {
        ดัชนี index.php index.html index.htm;
        เขียนใหม่ ^/shop/wp-json/(.*?)$ /shopping/index.php?rest_route=/$1 สุดท้าย;
        try_files $uri $uri/ /shop/index.php?q=$uri&$args;
}
ตำแหน่ง ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        หมดอายุ 24 ชม.;
        ปิด log_not_found;
}

    ตำแหน่ง ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass ยูนิกซ์:/var/run/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    รวม fastcgi_params;

 }
ตำแหน่ง ~\.(บันทึก|บันทึก|htaccess|json|csv|txt|xls)$ {
     ปฏิเสธทั้งหมด
     error_page 403 =404 / ;
 }
    ตำแหน่ง ~* /(?:uploads|files)/.*\.php$ {
        ปฏิเสธทั้งหมด
}
Lou_is avatar
sa flag
สิ่งนี้ดูเหมือนคำถามการกำหนดค่า nginx มากกว่าคำถามเพื่อความปลอดภัย Serverfault อาจเป็นตำแหน่งที่เหมาะสมกว่า
Greg avatar
in flag
โอเคขอบคุณ! ฉันจะโพสต์คำตอบที่นี่ถ้าฉันจะหาได้!
jp flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [การแก้ไขการผ่านไดเรกทอรีสำหรับการกำหนดค่า nginx](https://serverfault.com/questions/1087875/directory-traversal-fix-for-nginx-config)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา