const binary = xxxxx;
res.set('Content-Type', 'image/jpg');
res.send(binary);

एक्सप्रेस मार्ग पर परिभाषित, एक छवि लौटने पर उपरोक्त नमूना है। जो मुझे समझ में नहीं आ रहा है, वह यह है कि Content-Type को application/json में बदलने के बावजूद, यह भी काम करता प्रतीत होता है?

const binary = xxxxx;
res.set('Content-Type', 'application/json'); //Still returning an image?
res.send(binary);
1
Isaac 17 सितंबर 2019, 15:46

1 उत्तर

सबसे बढ़िया उत्तर

Content-Type हेडर केवल संसाधन के मीडिया प्रकार को दर्शाता है। ब्राउज़र MIME सूँघने का उपयोग कर सकते हैं और कुछ मामलों में इसे पूरी तरह से अनदेखा कर सकते हैं। इस व्यवहार को रोकने के लिए, आप X-Content-Type-Options को nosniff पर सेट कर सकते हैं।

एक प्रश्न उठता है: क्या मुझे इस इकाई शीर्षलेख को भी सेट करने की आवश्यकता है? इसे सेट किए बिना आप ब्राउज़र को हर बार MIME प्रकार को सूंघने के लिए मजबूर करते हैं और इस प्रकार संभावित रूप से प्रतिक्रिया निकाय को इच्छित सामग्री के अलावा अन्य सामग्री प्रकार के रूप में व्याख्या और प्रदर्शित करते हैं। यदि आपका सर्वर उपयोगकर्ता को फ़ाइलें अपलोड करने की अनुमति देता है, तो एक हैकर वेब एप्लिकेशन द्वारा स्वीकार किए जाने और ब्राउज़र द्वारा HTML के रूप में प्रस्तुत करने के लिए सामग्री में हेरफेर करके एक XSS हमला कर सकता है। वह कोड इंजेक्ट कर सकता है उदा। एक छवि फ़ाइल और छवि को देखकर पीड़ित को निष्पादित करें।

2
Tomasz Kasperczyk 17 सितंबर 2019, 13:35