2011-01-08 27 views
27

tôi đã cố gắng đặt này:làm thế nào để thiết lập tiêu đề Http X-XSS-Protection

<meta http-equiv="X-XSS-Protection" content="0"> 

trong thẻ <head> nhưng đã không có may mắn. Tôi đang cố gắng loại bỏ việc ngăn chặn các trang web ngang qua của IE ngăn chặn việc quét chéo trang

+3

Hãy thử gửi dưới dạng tiêu đề HTTP, có thể? –

+0

Tôi làm như thế nào? xin lỗi Im mới để đặt tiêu đề – Aly

Trả lời

38

Tôi nghi ngờ nó sẽ hoạt động như một thẻ meta. Bạn có thể phải nói với máy chủ web của bạn để gửi nó như là một tiêu đề thực sự.

Trong PHP, bạn muốn làm điều đó như

header("X-XSS-Protection: 0"); 

Trong ASP.net:

Response.AppendHeader("X-XSS-Protection","0") 

Trong cấu hình của Apache:

Header set X-XSS-Protection 0 

Trong IIS, có một phần trong các thuộc tính cho các tiêu đề bổ sung. Nó thường có "X-Powered-By: ASP.NET" đã được thiết lập trong nó; bạn chỉ cần thêm "X-XSS-Protection: 0" vào cùng một địa điểm.

+1

Đúng, nó không được hỗ trợ dưới dạng tiêu đề HTTP. – EricLaw

+0

tôi có thêm tệp này vào tệp .htaccess trong thư mục gốc của trang web của tôi không? – Aly

+0

Nếu bạn muốn áp dụng cho toàn bộ trang web, vâng. – cHao

2

Trong một số trường hợp, nếu bạn sử dụng .htaccess, bạn cần phải sử dụng dấu ngoặc kép:

Header set x-xss-protection "1; mode=block"

1

Trong Apache, bạn không cần phải chỉnh sửa tập tin cấu hình, tập tin này có thể là:

/etc/apache2/apache2.conf

/etc/apache2/httpd.conf

Trong tập tin bạn có thể thêm những dòng này ở cuối để cho phép HTTP Header XSS Protection:

<IfModule mod_headers.c> 
    Header set X-XSS-Protection: "1; mode=block" 
</IfModule> 

Lưu ý: nếu mod_headers là bên ngoài để Apache lõi chính (không phải biên dịch vào Apache) sau đó bạn sẽ sử dụng .so thay vì .c - nghĩa là. <IfModule mod_headers.so>

Sau đó, lưu các thay đổi và khởi động lại apache với:

sudo dịch vụ apache2 restart

hoặc

dịch vụ sudo httpd restart

Hy vọng điều này sẽ hữu ích! :)

+0

Tôi biết điều này đã được một thời gian dài trước đây nhưng tôi đi qua nó trong khi tìm kiếm một cái gì đó và tôi không nghĩ rằng bạn đặt ':' sau khi 'Bảo vệ' nếu bạn đang đặt này bên trong một tập tin htaccess., Bạn có? –

12

Nếu bạn đang sử dụng .Net MVC, bạn có thể định cấu hình nó qua customHeaders trong Web.Config.

Để thêm các tiêu đề này, hãy đi tới nút httpprotocol và thêm các tiêu đề đó vào trong nút customHeaders.

<httpprotocol> 
    <customheaders> 
     <remove name="X-Powered-By"> 
      <add name="X-XSS-Protection" value="1; mode=block"></add> 
     </remove> 
    </customheaders> 
</httpprotocol> 

tôi khuyên bạn nên liên kết này để giải thích như thế nào có thể giúp bạn có thể cấu hình bảo mật IIS Tiêu đề phản hồi trong ASP.NET MVC: http://insiderattack.blogspot.com/2014/04/configuring-secure-iis-response-headers.html

+3

đóng thẻ là sai, bạn cần phải đặt hai dòng đó trong thẻ tùy chỉnh ' ' –

+0

@shadyshrif đóng thẻ là tốt trên mã. Hãy xem: – Equiman

+0

@ mahmoud-samy vui lòng ngừng chỉnh sửa không chính xác câu trả lời này. Thẻ đóng tự động không phải là giải pháp, bạn đóng thẻ xóa trước khi thêm và sai. Vui lòng xem liên kết mà tôi đã đăng. Bạn đã thử nghiệm giải pháp mà bạn đang cố chỉnh sửa chưa ?. – Equiman

2

Trong ASP Classic, thẻ này sẽ làm điều đó:

<% Response.AddHeader "X-XSS-Protection", "1" %> 
0
# Turn on IE8-IE9 XSS prevention tools 
Header set X-XSS-Protection "1; mode=block" 

Tiêu đề này là độc quyền cho Internet Explorer 8 và 9, nó bật bảo vệ tập lệnh chéo trang web trong IE 8 và IE 9 là tur được tắt theo mặc định vì nó có khả năng phá vỡ một số trang web. Để bật bộ lọc XSS, hãy sử dụng tiêu đề X-XSS-Protection "1; mode = block". Nếu bạn muốn ngăn bộ lọc này được bật cho trang web của bạn, hãy đặt giá trị tiêu đề thành "0";

http://stopmalvertising.com/security/securing-your-website-with-.htaccess/.htaccess-http-headers.html

Các vấn đề liên quan