2012-02-23 38 views
5

Trên Chrome, tôi gặp lỗi Refused to execute a JavaScript script. Source code of script found within request. sau khi đăng dữ liệu chứa tên miền (cũng lưu ý việc thiếu javascript trên một trong hai trang).Bỏ qua thẻ cơ sở sau bài đăng

badpage1.html:

<form action="/badpage2.html" method="post"> 
<input type="hidden" name="name" value="href=%22http://www.w3.org/%22"/> 
<input type="submit" name="submit"/> 
</form> 

badpage2.html:

<!DOCTYPE html> 
<html> 
    <head> 
     <base href="http://www.w3.org/"/> 
    </head> 
    <body> 
     <img src="Icons/w3c_home" alt=""> 
    </body> 
</html> 

Nếu bạn đi trực tiếp đến badpage2.html hình ảnh sẽ hiển thị, nhưng nếu bạn đi đến nó thông qua badpage1.html, hình ảnh sẽ không hiển thị (tag cơ sở không hoạt động).

Đây có phải là lỗi trong phát hiện Chrome XSS không? Và nếu không, tôi sẽ bỏ qua điều này như thế nào? Có vẻ ngớ ngẩn để mã hóa dữ liệu đã đăng chỉ để bỏ qua bộ lọc này.

EDIT:

Trong trường hợp của tôi, giá trị bài gửi là để cập nhật một phần của nội dung của trang. Vấn đề đi kèm nếu nó chứa xảy ra để chứa tên miền được sử dụng trong <base> (như ví dụ này không) nó sẽ kích hoạt phát hiện XSS mà vô hiệu hóa các <base> thẻ.

+0

Thông tin thêm về điều này ở đây - http://stackoverflow.com/questions/1547884/refused-to-execute-a-javascript-script-source -code-of-script-found-within-reque – simshaun

+0

@simshaun Tôi thấy điều đó, nhưng trong trường hợp này XSS là * dự định * (vì nó là một trình soạn thảo CMS). Có một tiêu đề mà máy chủ có thể gửi hoặc điều gì đó để yêu cầu Chrome tắt các loại séc này không? –

+0

Điều duy nhất tôi có thể tìm thấy là http://lwn.net/Articles/360424/, mà chỉ đến một số [lỗi] (https://bugs.webkit.org/buglist.cgi?keywords=XSSAuditor&resolution=---) trong bộ lọc. Tuy nhiên, việc đoán bộ lọc hoạt động nhiều hơn chỉ là các tập lệnh để thông báo lỗi gây nhầm lẫn. Vấn đề thực sự là đặt href cơ sở thành một miền bên ngoài. AFAIK, điều này vi phạm hầu hết các mô hình bảo mật của trình duyệt. Không chắc chắn nếu có một workound đáng tin cậy cho nó, và thậm chí nếu như vậy, có lẽ không phải là một ý tưởng tốt (theo ý kiến ​​của tôi). Bạn có thể không xử lý trước trang để đặt URL đầy đủ trong bất kỳ thuộc tính src hoặc href tương đối nào không? – simshaun

Trả lời

3

Tôi phát hiện ra rằng tôi có thể gửi tiêu đề HTTP tùy chỉnh X-XSS-Protection trên trang đang được điều chỉnh do sự bảo vệ.

tôi sử dụng mã dưới đây để biết giải pháp PHP của tôi:

header("X-XSS-Protection: 0"); 
Các vấn đề liên quan