Apache trả lại php dưới dạng văn bản

Khi chạy tập lệnh của tôi, tôi gặp một số lỗi như thế này. Cảnh báo. Không thể sửa đổi thông tin tiêu đề - tiêu đề đã được gửi bởi (đầu ra bắt đầu tại /some/file. php. 12) trong /some/file. php trực tuyến


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

09


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

10


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

11


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

12


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

13


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

14


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

15

apache. htaccess cho phép người dùng định cấu hình các thư mục của máy chủ web mà họ kiểm soát mà không cần sửa đổi tệp cấu hình chính

Mặc dù điều này hữu ích, nhưng điều quan trọng cần lưu ý là việc sử dụng các tệp


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

2 làm chậm Apache, vì vậy, nếu bạn có quyền truy cập vào tệp cấu hình máy chủ chính (thường được gọi là

  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

3), bạn nên thêm logic này vào đó dưới một khối

  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

4

Nhìn thấy. htaccess trong trang web tài liệu HTTPD của Apache để biết thêm chi tiết về những gì. tập tin htaccess có thể làm

Phần còn lại của tài liệu này sẽ thảo luận về các tùy chọn cấu hình khác nhau mà bạn có thể thêm vào


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

2 và chức năng của chúng

Hầu hết các khối sau sử dụng lệnh IfModule để chỉ thực thi các lệnh bên trong khối nếu mô-đun tương ứng được cấu hình đúng và máy chủ đã tải nó. Bằng cách này, chúng tôi sẽ cứu máy chủ của mình khỏi bị sập nếu mô-đun không được tải

Chuyển hướng

Đôi khi chúng ta cần thông báo cho người dùng rằng tài nguyên đã được di chuyển, tạm thời hoặc vĩnh viễn. Đây là những gì chúng tôi sử dụng


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

6 và

  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

7 cho


  # Redirect to a URL on a different host
  Redirect "/service" "http://foo2.example.com/service"

  # Redirect to a URL on the same host
  Redirect "/one" "/two"

  # Equivalent redirect to URL on the same host
  Redirect temp "/one" "/two"

  # Permanent redirect to a URL on the same host
  Redirect permanent "/three" "/four"

  # Redirect to an external URL
  # Using regular expressions and RedirectMatch
  RedirectMatch "^/oldfile\.html/?$" "http://example.com/newfile.php"

Các giá trị có thể có cho tham số đầu tiên được liệt kê bên dưới. Nếu tham số đầu tiên không được bao gồm, nó sẽ mặc định là


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

8

dài hạn

Trả về trạng thái chuyển hướng vĩnh viễn (301) cho biết tài nguyên đã được di chuyển vĩnh viễn

nhiệt độ

Trả về trạng thái chuyển hướng tạm thời (302). Đây là mặc định

nước sôi

Trả về trạng thái "Xem Khác" (303) cho biết tài nguyên đã được thay thế

Không còn

Trả về trạng thái "Đã qua" (410) cho biết tài nguyên đã bị xóa vĩnh viễn. Khi trạng thái này được sử dụng, đối số URL sẽ được bỏ qua

Tài nguyên có nguồn gốc chéo

Nhóm lệnh đầu tiên kiểm soát quyền truy cập CORS (Chia sẻ tài nguyên gốc chéo) vào tài nguyên từ máy chủ. CORS là cơ chế dựa trên tiêu đề HTTP cho phép máy chủ chỉ ra nguồn gốc bên ngoài (tên miền, giao thức hoặc cổng) mà trình duyệt sẽ cho phép tải tài nguyên

Vì lý do bảo mật, các trình duyệt hạn chế các yêu cầu HTTP có nhiều nguồn gốc được bắt đầu từ các tập lệnh. Ví dụ: XMLHttpRequest và Fetch API tuân theo chính sách cùng nguồn gốc. Một ứng dụng web sử dụng các API đó chỉ có thể yêu cầu tài nguyên từ cùng một nguồn gốc mà ứng dụng đã được tải trừ khi phản hồi từ các nguồn gốc khác bao gồm các tiêu đề CORS thích hợp

Truy cập CORS chung

Chỉ thị này sẽ thêm tiêu đề CORS cho tất cả các tài nguyên trong thư mục từ bất kỳ trang web nào

________số 8

Trừ khi bạn ghi đè lệnh sau này trong cấu hình hoặc trong cấu hình của một thư mục bên dưới nơi bạn đặt lệnh này, mọi yêu cầu từ các máy chủ bên ngoài sẽ được thực hiện, đây không phải là điều bạn muốn

Một cách khác là nêu rõ tên miền nào có quyền truy cập vào nội dung trang web của bạn. Trong ví dụ bên dưới, chúng tôi hạn chế quyền truy cập vào tên miền phụ của trang web chính của chúng tôi (ví dụ. com). Điều này an toàn hơn và có thể là những gì bạn định làm


  Header set Access-Control-Allow-Origin "subdomain.example.com"

Hình ảnh gốc chéo

Như đã báo cáo trong Blog Chromium và được ghi lại trong Cho phép sử dụng hình ảnh và canvas trên nhiều nguồn gốc có thể dẫn đến các cuộc tấn công lấy dấu vân tay

Để giảm thiểu khả năng xảy ra các cuộc tấn công này, bạn nên sử dụng thuộc tính


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

9 trong hình ảnh bạn yêu cầu và đoạn mã bên dưới trong

  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

2 của bạn để đặt tiêu đề CORS từ máy chủ


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

Hướng dẫn khắc phục sự cố Google Fonts của Google Chrome cho chúng tôi biết rằng mặc dù Google Fonts có thể gửi tiêu đề CORS với mọi phản hồi, một số máy chủ proxy có thể loại bỏ nó trước khi trình duyệt có thể sử dụng nó để hiển thị phông chữ


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

3

Thời gian nguồn gốc chéo

Đặc tả Cấp độ Thời gian Tài nguyên 1 xác định giao diện cho các ứng dụng web để truy cập thông tin thời gian đầy đủ cho các tài nguyên trong tài liệu

Tiêu đề phản hồi Timing-Allow-Origin chỉ định các nguồn gốc được phép xem giá trị của các thuộc tính được truy xuất thông qua các tính năng của API Thời gian tài nguyên, nếu không sẽ được báo cáo là 0 do các hạn chế về nguồn gốc chéo

Nếu một tài nguyên không được cung cấp với một


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

31 hoặc nếu tiêu đề không bao gồm nguồn gốc, thì sau khi thực hiện yêu cầu, một số thuộc tính của đối tượng

  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

32 sẽ được đặt thành 0


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

6

Trang / Thông báo lỗi tùy chỉnh

Apache cho phép bạn cung cấp các trang lỗi tùy chỉnh cho người dùng tùy thuộc vào loại lỗi mà họ nhận được

Các trang lỗi được trình bày dưới dạng URL. Các URL này có thể bắt đầu bằng dấu gạch chéo (/) cho các đường dẫn web cục bộ (so với DocumentRoot) hoặc là một URL đầy đủ mà khách hàng có thể giải quyết

Xem tài liệu Chỉ thị ErrorDocument trên trang web tài liệu HTTPD để biết thêm thông tin


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

7

ngăn ngừa lỗi

Cài đặt này ảnh hưởng đến cách MultiViews hoạt động đối với thư mục mà cấu hình áp dụng cho

Tác dụng của


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

33 như sau. nếu máy chủ nhận được yêu cầu cho /some/dir/foo, nếu /some/dir đã bật

  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

33 và /some/dir/foo không tồn tại, thì máy chủ sẽ đọc thư mục tìm kiếm các tệp có tên foo. * và giả mạo một cách hiệu quả một bản đồ loại đặt tên cho tất cả các tệp đó, gán cho chúng các loại phương tiện và mã hóa nội dung giống nhau nếu khách hàng yêu cầu một trong số chúng theo tên. Sau đó, nó chọn kết quả phù hợp nhất với yêu cầu của khách hàng

Cài đặt vô hiệu hóa


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

33 cho thư mục mà cấu hình này áp dụng và ngăn Apache trả về lỗi 404 do viết lại khi thư mục có cùng tên không tồn tại


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

1

Loại phương tiện và mã hóa ký tự

Apache sử dụng mod_mime để gán siêu dữ liệu nội dung cho nội dung được chọn cho phản hồi HTTP bằng cách ánh xạ các mẫu trong URI hoặc tên tệp cho các giá trị siêu dữ liệu

Ví dụ: phần mở rộng tên tệp của tệp nội dung thường xác định loại phương tiện Internet, ngôn ngữ, bộ ký tự và mã hóa nội dung của nội dung. Thông tin này được gửi trong các thông báo HTTP có chứa nội dung đó và được sử dụng trong thương lượng nội dung khi chọn các lựa chọn thay thế, sao cho tùy chọn của người dùng được tôn trọng khi chọn một trong số các nội dung có thể để phân phát

Thay đổi siêu dữ liệu cho tệp không thay đổi giá trị của tiêu đề Lần sửa đổi cuối cùng. Do đó, các bản sao được lưu trong bộ nhớ cache trước đó vẫn có thể được sử dụng bởi máy khách hoặc proxy, với các tiêu đề trước đó. Nếu bạn thay đổi siêu dữ liệu (ngôn ngữ, loại nội dung, bộ ký tự hoặc mã hóa), bạn có thể cần phải 'chạm' vào các tệp bị ảnh hưởng (cập nhật ngày sửa đổi gần đây nhất của chúng) để đảm bảo rằng tất cả khách truy cập đều nhận được tiêu đề nội dung đã sửa

Cung cấp tài nguyên với các loại phương tiện thích hợp (a. k. a. loại MIME)

Liên kết các loại phương tiện với một hoặc nhiều tiện ích mở rộng để đảm bảo tài nguyên sẽ được phục vụ phù hợp

Máy chủ nên sử dụng văn bản/javascript cho các tài nguyên JavaScript như được chỉ ra trong đặc tả HTML


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

2

Đặt thuộc tính Charset mặc định

Mỗi phần nội dung trên web đều có một bộ ký tự. Hầu hết, nếu không muốn nói là tất cả, nội dung là UTF-8 Unicode

Sử dụng AddDefaultCharset để phục vụ tất cả các tài nguyên được gắn nhãn là


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

36 hoặc

  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

37 với bộ ký tự

  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

38


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

6

Đặt bộ ký tự cho các loại phương tiện cụ thể

Phục vụ các loại tệp sau với tham số


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

39 được đặt thành

  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

38 bằng cách sử dụng lệnh AddCharset có sẵn trong

  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

61


  Header set Access-Control-Allow-Origin "*"

0

Mod_rewrite và các chỉ thị RewriteEngine

mod_rewrite cung cấp một cách để sửa đổi các yêu cầu URL đến một cách linh hoạt, dựa trên các quy tắc biểu thức chính quy. Điều này cho phép bạn ánh xạ các URL tùy ý vào cấu trúc URL nội bộ của mình theo bất kỳ cách nào bạn muốn

Nó hỗ trợ vô số quy tắc và vô số điều kiện quy tắc đính kèm cho mỗi quy tắc để cung cấp một cơ chế thao tác URL thực sự linh hoạt và mạnh mẽ. Các thao tác URL có thể phụ thuộc vào các thử nghiệm khác nhau. biến máy chủ, biến môi trường, tiêu đề HTTP, dấu thời gian, tra cứu cơ sở dữ liệu bên ngoài và nhiều chương trình hoặc trình xử lý bên ngoài khác, có thể được sử dụng để đạt được đối sánh URL chi tiết

Bật mod_rewrite

Mẫu cơ bản để bật


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

62 là điều kiện tiên quyết cho tất cả các tác vụ khác sử dụng

Các bước cần thiết là

  1. Bật công cụ viết lại (điều này là cần thiết để các lệnh
    
      
        
          SetEnvIf Origin ":" IS_CORS
          Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
        
      
    
    
    63 hoạt động) như được ghi lại trong tài liệu RewriteEngine
  2. Bật tùy chọn
    
      
        
          SetEnvIf Origin ":" IS_CORS
          Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
        
      
    
    
    64 nếu chưa có. Xem tài liệu Tùy chọn cốt lõi
  3. Nếu máy chủ lưu trữ web của bạn không cho phép tùy chọn
    
      
        
          SetEnvIf Origin ":" IS_CORS
          Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
        
      
    
    
    65, bạn cần bình luận hoặc xóa nó, sau đó bỏ ghi chú dòng
    
      
        
          SetEnvIf Origin ":" IS_CORS
          Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
        
      
    
    
    66, nhưng lưu ý về tác động hiệu suất
    • Một số dịch vụ lưu trữ đám mây sẽ yêu cầu bạn đặt
      
        
          
            SetEnvIf Origin ":" IS_CORS
            Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
          
        
      
      
      67
    • Xem Câu hỏi thường gặp về Rackspace và tài liệu HTTPD
    • Tùy thuộc vào cách thiết lập máy chủ của bạn, bạn cũng có thể cần sử dụng lệnh
      
        
          
            SetEnvIf Origin ":" IS_CORS
            Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
          
        
      
      
      68 để bật một số tùy chọn cho công cụ viết lại


  Header set Access-Control-Allow-Origin "*"

1

Buộc https

Các quy tắc Viết lại này sẽ chuyển hướng từ phiên bản không an toàn


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

69 sang phiên bản an toàn

  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

70 của URL như được mô tả trong wiki HTTPD của Apache


  Header set Access-Control-Allow-Origin "*"

2

Nếu bạn đang sử dụng cPanel AutoSSL hoặc phương pháp webroot Let's Encrypt để tạo chứng chỉ SSL, chứng chỉ sẽ không thể xác thực nếu yêu cầu xác thực được chuyển hướng đến HTTPS. Bật (các) điều kiện bạn cần


  Header set Access-Control-Allow-Origin "*"

3

Chuyển hướng từ www. URL

Những chỉ thị này sẽ viết lại


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

71 thành

  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

72

Bạn không nên sao chép nội dung ở nhiều nguồn gốc (có và không có www); Điều này có thể gây ra các vấn đề về SEO (nội dung trùng lặp) và do đó, bạn nên chọn một trong các lựa chọn thay thế và chuyển hướng sang trang khác. Bạn cũng nên sử dụng các URL chính tắc để cho biết công cụ tìm kiếm sẽ thu thập dữ liệu URL nào (nếu chúng hỗ trợ tính năng này)

Đặt biến


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

73, để cho phép viết lại tự động chuyển hướng với lược đồ phù hợp (http hoặc https)

Theo mặc định, quy tắc giả định rằng cả hai môi trường HTTP và HTTPS đều khả dụng để chuyển hướng


  Header set Access-Control-Allow-Origin "*"

4

Chèn www. ở đầu URL

Các quy tắc này sẽ chèn


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

74 vào đầu URL. Điều quan trọng cần lưu ý là bạn không bao giờ được cung cấp cùng một nội dung dưới hai URL khác nhau

Điều này có thể gây ra các vấn đề về SEO (nội dung trùng lặp) và do đó, bạn nên chọn một trong các phương án thay thế và chuyển hướng phương án khác. Đối với các công cụ tìm kiếm hỗ trợ chúng, bạn nên sử dụng URL Canonical để cho biết công cụ tìm kiếm sẽ thu thập dữ liệu URL nào

Đặt biến


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

73, để cho phép viết lại tự động chuyển hướng với lược đồ phù hợp (http hoặc https)

Theo mặc định, quy tắc giả định rằng cả hai môi trường HTTP và HTTPS đều khả dụng để chuyển hướng. Nếu chứng chỉ SSL của bạn không thể xử lý một trong các miền được sử dụng trong quá trình chuyển hướng, bạn nên bật điều kiện

Những điều sau đây có thể không phải là ý kiến ​​hay nếu bạn sử dụng tên miền phụ "thực" cho một số phần nhất định trên trang web của mình


  Header set Access-Control-Allow-Origin "*"

5

Tùy chọn khung

Ví dụ bên dưới gửi tiêu đề phản hồi


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

76 với giá trị DENY, thông báo cho các trình duyệt không hiển thị nội dung của trang web trong bất kỳ khung nào để bảo vệ trang web khỏi clickjacking

Đây có thể không phải là cài đặt tốt nhất cho mọi người. Bạn nên đọc về hai giá trị có thể khác cho tiêu đề


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

76.

  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

78 và

  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

79

Mặc dù bạn có thể gửi tiêu đề


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

76 cho tất cả các trang trên trang web của mình, nhưng điều này có nhược điểm tiềm ẩn là nó cấm ngay cả mọi khung nội dung của bạn (e. g. khi người dùng truy cập trang web của bạn bằng trang kết quả Tìm kiếm hình ảnh của Google)

Tuy nhiên, bạn nên đảm bảo rằng bạn gửi tiêu đề


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

76 cho tất cả các trang cho phép người dùng thực hiện thao tác thay đổi trạng thái (e. g. , các trang chứa liên kết mua bằng một cú nhấp chuột, trang xác nhận thanh toán hoặc chuyển khoản ngân hàng, các trang thực hiện thay đổi cấu hình vĩnh viễn, v.v. )


  Header set Access-Control-Allow-Origin "*"

6

Chính sách bảo mật nội dung (CSP)

CSP (Chính sách bảo mật nội dung) giảm thiểu rủi ro của kịch bản chéo trang và các cuộc tấn công chèn nội dung khác bằng cách đặt một


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

12 cho phép các nguồn nội dung đáng tin cậy cho trang web của bạn

Không có chính sách nào phù hợp với tất cả các trang web, ví dụ bên dưới là hướng dẫn để bạn sửa đổi cho trang web của mình

Chính sách ví dụ dưới đây

Để làm cho việc triển khai CSP của bạn dễ dàng hơn, bạn có thể sử dụng trình tạo tiêu đề CSP trực tuyến. Bạn cũng nên sử dụng trình xác thực để đảm bảo tiêu đề của bạn thực hiện những gì bạn muốn.


  Header set Access-Control-Allow-Origin "*"

7

truy cập thư mục

Lệnh này sẽ ngăn truy cập vào các thư mục không có tệp chỉ mục ở bất kỳ định dạng nào mà máy chủ được định cấu hình để sử dụng, chẳng hạn như


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

13 hoặc

  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

14


  Header set Access-Control-Allow-Origin "*"

8

Chặn quyền truy cập vào các tập tin và thư mục ẩn

Trong các hệ thống Macintosh và Linux, các tệp bắt đầu bằng dấu chấm sẽ bị ẩn khỏi chế độ xem nhưng không truy cập được nếu bạn biết tên và vị trí của chúng. Các loại tệp này thường chứa các tùy chọn của người dùng hoặc trạng thái được bảo toàn của tiện ích và có thể bao gồm các vị trí khá riêng tư, chẳng hạn như thư mục


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

15 hoặc

  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

16

Thư mục


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

17 đại diện cho tiền tố đường dẫn chuẩn (RFC 5785) cho "các vị trí nổi tiếng" (e. g.

  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

18,

  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

19), và do đó, quyền truy cập vào nội dung hiển thị của nó sẽ không bị chặn


  Header set Access-Control-Allow-Origin "*"

9

Chặn quyền truy cập vào các tệp có thông tin nhạy cảm

Chặn quyền truy cập vào các tệp nguồn và sao lưu mà một số trình soạn thảo văn bản có thể để lại và có thể gây rủi ro bảo mật khi bất kỳ ai có quyền truy cập vào chúng

Cập nhật biểu thức chính quy


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

20 trong ví dụ sau để bao gồm bất kỳ tệp nào có thể kết thúc trên máy chủ sản xuất của bạn và có thể tiết lộ thông tin nhạy cảm về trang web của bạn. Những tập tin này có thể bao gồm. tệp cấu hình hoặc tệp chứa siêu dữ liệu về dự án trong số những tệp khác


  Header set Access-Control-Allow-Origin "subdomain.example.com"

0

Bảo mật truyền tải nghiêm ngặt HTTP (HSTS)

Nếu người dùng gõ


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

72 trong trình duyệt của họ, ngay cả khi máy chủ chuyển hướng họ đến phiên bản bảo mật của trang web, điều đó vẫn để lại cơ hội (kết nối HTTP ban đầu) để kẻ tấn công hạ cấp hoặc chuyển hướng yêu cầu

Tiêu đề sau đảm bảo rằng trình duyệt chỉ kết nối với máy chủ của bạn qua HTTPS, bất kể người dùng nhập gì vào thanh địa chỉ của trình duyệt

Xin lưu ý rằng Bảo mật vận chuyển nghiêm ngặt không thể hủy bỏ được và bạn phải đảm bảo có thể phục vụ trang web qua HTTPS miễn là bạn đã chỉ định trong chỉ thị


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

22. Nếu bạn không còn kết nối TLS hợp lệ nữa (e. g. do chứng chỉ TLS đã hết hạn), khách truy cập của bạn sẽ thấy thông báo lỗi ngay cả khi cố gắng kết nối qua HTTP


  Header set Access-Control-Allow-Origin "subdomain.example.com"

1

Ngăn một số trình duyệt MIME đánh hơi phản hồi

  1. Theo mặc định, hạn chế tất cả các lần tìm nạp đối với nguồn gốc của trang web hiện tại bằng cách đặt chỉ thị
    
      
        
          SetEnvIf Origin ":" IS_CORS
          Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
        
      
    
    
    23 thành
    
      
        
          SetEnvIf Origin ":" IS_CORS
          Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
        
      
    
    
    24 - đóng vai trò dự phòng cho tất cả các chỉ thị Tìm nạp
    • Điều này thuận tiện vì bạn không phải chỉ định tất cả các chỉ thị Tìm nạp áp dụng cho trang web của mình, chẳng hạn như.
      
        
          
            SetEnvIf Origin ":" IS_CORS
            Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
          
        
      
      
      25, v.v.
    • Hạn chế này cũng có nghĩa là bạn phải xác định rõ ràng (những) trang web nào mà trang web của bạn được phép tải tài nguyên từ đó, nếu không, nó sẽ bị hạn chế ở cùng nguồn gốc với trang đưa ra yêu cầu
  2. Không cho phép phần tử
    
      
        
          SetEnvIf Origin ":" IS_CORS
          Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
        
      
    
    
    26 trên trang web. Điều này nhằm ngăn kẻ tấn công thay đổi vị trí của tài nguyên được tải từ các URL tương đối
    • Nếu bạn muốn sử dụng phần tử
      
        
          
            SetEnvIf Origin ":" IS_CORS
            Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
          
        
      
      
      26, hãy sử dụng
      
        
          
            SetEnvIf Origin ":" IS_CORS
            Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
          
        
      
      
      28 để thay thế
  3. Chỉ cho phép gửi biểu mẫu từ nguồn gốc hiện tại với.
    
      
        
          SetEnvIf Origin ":" IS_CORS
          Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
        
      
    
    
    29
  4. Ngăn chặn tất cả các trang web (bao gồm cả trang web của bạn) nhúng các trang web của bạn vào e. g. phần tử
    
      
        
          SetEnvIf Origin ":" IS_CORS
          Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
        
      
    
    
    60 hoặc
    
      
        
          SetEnvIf Origin ":" IS_CORS
          Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
        
      
    
    
    61 bằng cách đặt.
    
      
        
          SetEnvIf Origin ":" IS_CORS
          Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
        
      
    
    
    62
    • Chỉ thị
      
        
          
            SetEnvIf Origin ":" IS_CORS
            Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
          
        
      
      
      63 giúp tránh các cuộc tấn công clickjacking và tương tự như tiêu đề
      
        
          
            SetEnvIf Origin ":" IS_CORS
            Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
          
        
      
      
      76
    • Các trình duyệt hỗ trợ tiêu đề CSP sẽ bỏ qua
      
        
          
            SetEnvIf Origin ":" IS_CORS
            Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
          
        
      
      
      76 nếu
      
        
          
            SetEnvIf Origin ":" IS_CORS
            Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
          
        
      
      
      63 cũng được chỉ định
  5. Buộc trình duyệt xử lý tất cả các tài nguyên được cung cấp qua HTTP như thể chúng được tải an toàn qua HTTPS bằng cách đặt chỉ thị
    
      
        
          SetEnvIf Origin ":" IS_CORS
          Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
        
      
    
    
    67
    • 
        
          
            SetEnvIf Origin ":" IS_CORS
            Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
          
        
      
      
      67 không đảm bảo HTTPS cho điều hướng cấp cao nhất. Nếu bạn muốn buộc trang web tải qua HTTPS, bạn phải bao gồm tiêu đề
      
        
          
            SetEnvIf Origin ":" IS_CORS
            Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
          
        
      
      
      69
  6. Bao gồm tiêu đề
    
      Header set Access-Control-Allow-Origin "*"
    
    
    00 trong tất cả các phản hồi có thể thực thi tập lệnh. Điều này bao gồm các loại tệp thường được sử dụng. Tài liệu HTML, XML và PDF. Mặc dù các tệp JavaScript không thể thực thi các tập lệnh trong "bối cảnh duyệt web", nhưng chúng được đưa vào để nhắm mục tiêu nhân viên web

Một số trình duyệt cũ hơn sẽ thử và đoán loại nội dung của tài nguyên, ngay cả khi nó không được thiết lập đúng trên cấu hình máy chủ. Điều này làm giảm nguy cơ bị tấn công tải xuống theo ổ đĩa và rò rỉ dữ liệu giữa các nguồn gốc


  Header set Access-Control-Allow-Origin "subdomain.example.com"

2

Chính sách giới thiệu

Chúng tôi bao gồm tiêu đề


  Header set Access-Control-Allow-Origin "*"

01 trong phản hồi cho các tài nguyên có thể yêu cầu (hoặc điều hướng đến) các tài nguyên khác

Điều này bao gồm các loại tài nguyên thường được sử dụng. HTML, CSS, XML/SVG, tài liệu PDF, tập lệnh và công nhân

Để ngăn hoàn toàn rò rỉ liên kết giới thiệu, thay vào đó hãy chỉ định giá trị


  Header set Access-Control-Allow-Origin "*"

02. Lưu ý rằng hiệu ứng này có thể tác động tiêu cực đến các công cụ phân tích

Sử dụng các dịch vụ như bên dưới để kiểm tra Chính sách giới thiệu của bạn

  • bảo mật. com
  • Đài thiên văn Mozilla


  Header set Access-Control-Allow-Origin "subdomain.example.com"

3

Vô hiệu hóa phương thức TRACE HTTP

Phương pháp TRACE, mặc dù có vẻ vô hại, nhưng có thể được tận dụng thành công trong một số trường hợp để đánh cắp thông tin xác thực của người dùng hợp pháp. Xem Tấn công theo dõi chéo trang (XST) và Hướng dẫn kiểm tra bảo mật web OWASP

Các trình duyệt hiện đại hiện ngăn các yêu cầu TRACE được thực hiện qua JavaScript, tuy nhiên, các cách khác để gửi yêu cầu TRACE bằng trình duyệt đã được phát hiện, chẳng hạn như sử dụng Java

Nếu bạn có quyền truy cập vào tệp cấu hình máy chủ chính, hãy sử dụng lệnh


  Header set Access-Control-Allow-Origin "*"

03 để thay thế


  Header set Access-Control-Allow-Origin "subdomain.example.com"

4

Xóa tiêu đề phản hồi X-Powered-By

Một số framework như PHP và ASP. NET đặt tiêu đề


  Header set Access-Control-Allow-Origin "*"

04 chứa thông tin về chúng (e. g. tên của họ, số phiên bản)

Tiêu đề này không cung cấp bất kỳ giá trị nào và trong một số trường hợp, thông tin mà nó cung cấp có thể làm lộ các lỗ hổng


  Header set Access-Control-Allow-Origin "subdomain.example.com"

5

Nếu có thể, bạn nên tắt tiêu đề


  Header set Access-Control-Allow-Origin "*"

04 ở cấp độ ngôn ngữ/khuôn khổ (e. g. đối với PHP, bạn có thể làm điều đó bằng cách thiết lập như sau trong

  Header set Access-Control-Allow-Origin "*"

06


  Header set Access-Control-Allow-Origin "subdomain.example.com"

6

Xóa chân trang thông tin máy chủ do Apache tạo

Ngăn không cho Apache thêm một dòng cuối trang có chứa thông tin về máy chủ vào các tài liệu do máy chủ tạo ra (e. g. thông báo lỗi, danh sách thư mục, v.v. ). Xem Chỉ thị Chữ ký Máy chủ để biết thêm thông tin về những gì chữ ký máy chủ cung cấp và Chỉ thị ServerTokens để biết thông tin về cách định cấu hình thông tin được cung cấp trong chữ ký


  Header set Access-Control-Allow-Origin "subdomain.example.com"

7

Sửa các tiêu đề AcceptEncoding bị hỏng

Một số proxy và phần mềm bảo mật xáo trộn hoặc loại bỏ tiêu đề HTTP


  Header set Access-Control-Allow-Origin "*"

07. Xem Đẩy ngoài Gzipping để được giải thích chi tiết hơn


  Header set Access-Control-Allow-Origin "subdomain.example.com"

8

Nén các loại phương tiện

Nén tất cả đầu ra được gắn nhãn bằng một trong các loại phương tiện sau bằng cách sử dụng Chỉ thị AddOutputFilterByType


  Header set Access-Control-Allow-Origin "subdomain.example.com"

9

Bản đồ tiện ích mở rộng cho các loại phương tiện

Ánh xạ các phần mở rộng tên tệp sau sang loại mã hóa được chỉ định bằng cách sử dụng AddEncoding để Apache có thể phục vụ các loại tệp với tiêu đề phản hồi


  Header set Access-Control-Allow-Origin "*"

08 thích hợp (điều này sẽ KHÔNG làm cho Apache nén chúng. ). Nếu các loại tệp này được cung cấp mà không có tiêu đề phản hồi

  Header set Access-Control-Allow-Origin "*"

08 thích hợp, các ứng dụng khách (e. g. trình duyệt) sẽ không biết rằng trước tiên họ cần giải nén phản hồi và do đó, sẽ không thể hiểu nội dung


  
    
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=*IS_CORS*
    
  

0

Hết hạn bộ nhớ

Cung cấp các tài nguyên có ngày hết hạn trong tương lai xa bằng cách sử dụng mô-đun mod_expires và các tiêu đề Kiểm soát bộ đệm và Hết hạn

Tại sao mã PHP của tôi hiển thị dưới dạng văn bản?

Nếu vì lý do nào đó, PHP chưa được cài đặt trên máy chủ HOẶC PHP không được định cấu hình để hoạt động với máy chủ web của bạn , thì nó không còn nữa . Nó chỉ được xem là một tệp văn bản được hiển thị dưới dạng văn bản HTML trong trình duyệt.

Tại sao PHP không hoạt động trong HTML?

Tệp php luôn có thể đọc và hiển thị mã HTML, nhưng HTML không tự động phân tích cú pháp mã php. Để làm như vậy, bạn sẽ cần điều chỉnh. tệp htaccess . Khi đã xong, mã php sẽ hiển thị trong các tệp HTML mà không gặp sự cố.