უსაფრთხოების სათაურები არის HTTP საპასუხო სათაურის ქვეჯგუფი, რომელიც შეიძლება დაყენდეს ვებ სერვერის მიერ, სადაც თითოეული იყენებს უსაფრთხოების კონტროლს ბრაუზერებში. HTTP სათაურები არის მეტამონაცემების ფორმა, რომელიც გაგზავნილია ვებ მოთხოვნით და პასუხებით. უსაფრთხოების სათაური „X-Content-Type-Options“ ხელს უშლის ბრაუზერებს MIME სნიფის შესრულებაში.
შენიშვნა: HTTP სათაურები არ არის ექსკლუზიური HTTP-ისთვის და ასევე გამოიყენება HTTPS-ში.
რა არის MIME sniffing?
როდესაც რაიმე მონაცემი იგზავნება ვებზე, მეტამონაცემების ერთ-ერთი ნაწილი არის MIME ტიპი. მრავალფუნქციური ინტერნეტ ფოსტის გაფართოებები, ან MIME ტიპები არის სტანდარტი, რომელიც გამოიყენება ფაილის შემცველი მონაცემების ტიპის დასადგენად, რაც მიუთითებს იმაზე, თუ როგორ უნდა დამუშავდეს ფაილი. როგორც წესი, MIME-ტიპი შედგება ტიპისა და ქვეტიპისგან არჩევითი პარამეტრითა და მნიშვნელობით. მაგალითად, UTF-8 ტექსტურ ფაილს ექნება MIME ტიპის „text/plain; სიმბოლოების ნაკრები = UTF-8”. ამ მაგალითში, ტიპი არის "ტექსტი", ქვეტიპი არის "უბრალო", პარამეტრი არის "charset" და მნიშვნელობა არის "UTF-8".
ფაილების არასწორი ეტიკეტირებისა და არასწორი გამოყენების თავიდან ასაცილებლად, ვებ სერვერები, როგორც წესი, ასრულებენ MIME სნიფს. ეს არის პროცესი, სადაც ცალსახად ნათქვამი MIME-ტიპი იგნორირებულია და ამის ნაცვლად, გაანალიზებულია ფაილის დასაწყისი. ფაილის ტიპების უმეტესობა შეიცავს სათაურების თანმიმდევრობას, რომელიც მიუთითებს რა ტიპის ფაილია. უმეტეს შემთხვევაში, MIME ტიპები სწორია და ფაილის ჩასუნთქვა არაფერ შუაშია. თუმცა, თუ განსხვავებაა, ვებ სერვერები გამოიყენებენ sniffed ფაილის ტიპს, რათა დადგინდეს, თუ როგორ უნდა დამუშავდეს ფაილი, ვიდრე დეკლარირებული MIME ტიპის.
პრობლემა წარმოიქმნება, თუ თავდამსხმელი ახერხებს ფაილის ატვირთვას, როგორიცაა PNG გამოსახულება, მაგრამ ფაილი ნამდვილად არის JavaScript კოდის მსგავსი. მსგავსი ფაილის ტიპებისთვის, როგორიცაა ორი ტექსტის ტიპი, ამან შეიძლება არ გამოიწვიოს ძალიან ბევრი პრობლემა. თუმცა, ეს სერიოზულ პრობლემად იქცევა, თუ სრულყოფილად უვნებელი ფაილის ნაცვლად შეიძლება შესრულდეს.
რას აკეთებს X-Content-Type-Options?
X-Content-Type-Options სათაურს აქვს მხოლოდ ერთი შესაძლო მნიშვნელობა "X-Content-Type-Options: nosniff". მისი ჩართვა აცნობებს მომხმარებლის ბრაუზერს, რომ მან არ უნდა შეასრულოს MIME ტიპის sniffing და სანაცვლოდ დაეყრდნოს ცალსახად გამოცხადებულ მნიშვნელობას. ამ პარამეტრის გარეშე, თუ JavaScript-ის მავნე ფაილი შენიღბული იქნებოდა სურათად, როგორიცაა PNG, მაშინ JavaScript ფაილი შესრულდებოდა. თუ ჩართულია X-Content-Type-Options, ფაილი განიხილება, როგორც სურათი, რომელიც ვერ იტვირთება, რადგან ფაილი არ არის სწორი გამოსახულების ფორმატი.
X-Content-Type-Options არ არის განსაკუთრებით საჭირო ვებსაიტზე, რომელიც იყენებს მთლიანად პირველი მხარის რესურსებს, რადგან არ არსებობს მავნე ფაილის შემთხვევითი სერვისის შანსი. თუ ვებსაიტი იყენებს მესამე მხარის კონტენტს, როგორიცაა გარე ან მომხმარებლის მიერ გაგზავნილი რესურსები, მაშინ X-Content-Type-Options უზრუნველყოფს დაცვას ამ ტიპის თავდასხმისგან.