2013-04-01 6 views
6

निम्नलिखित कोड सुरक्षित है?क्या यह jquery कोड सुरक्षित है?

$iframe = $('<iframe id="iframe" src="' + $(this).attr('rel') + '" name="iframe">'); 
$area = $("#ajax-area"); 
$area.empty().append($iframe); 

कहाँ:

  1. $(this) कड़ी है क्लिक किया।
  2. attr('rel') आईफ़्रेम के लिए src रखता है और रिले PHP द्वारा बनाया गया है (यहां कोई उपयोगकर्ता इनपुट नहीं है)।
  3. और $iframe अपलोड करने के लिए एक फॉर्म है।

मेरी चिंता यह है कि इस मामले में iframe का स्रोत एक चर है, मुझे डर है कि एक दुर्भावनापूर्ण उपयोगकर्ता किसी भी तरह से 'रिले' विशेषता को संपादित करने और एक आईफ्रेम खोलने का प्रबंधन करता है जिसे वह चाहता है। क्या यह संभव है?

संपादित

अपने मूल्यवान उत्तरों के लिए धन्यवाद।

php rel पॉप्युलेट करने के लिए निम्नलिखित का उपयोग करता है:

App::basePath . '/some/path/to/my/folder'; 

कहाँ basePath एक निरंतर है कि डेवलपर चुनता है।

जैसा कि आपने सुझाव दिया था, मैं अपने jquery को एक और उचित तरीके से फिर से डिजाइन कर दूंगा।

+1

और स्पष्ट परिदृश्य है जब '$ (this) .attr ('rel')' वर्ण हैं कि एचटीएमएल में एक अर्थ है और भागने की जरूरत है। आपको 'src' विशेषता को पॉप्युलेट करने के लिए वास्तव में' attr() 'का उपयोग करना चाहिए। –

उत्तर

3

सैद्धांतिक रूप से, अगर rel विशेषता एक सर्वर निरंतर पर आधारित है, वहाँ कोई अतिरिक्त सुरक्षा ऐसी MITM के रूप में हैं जिन्हें आप नियंत्रित नहीं कर सकते, के अलावा अन्य मुद्दों होना चाहिए।

हालांकि, आपको हमेशा इन चीजों के साथ सुरक्षित पक्ष पर होना चाहिए; और jQuery कि एक टैग के लिए गुण की अनुमति देकर सुरक्षा निर्माता से पीछे तर्क के रूप में पारित होने के लिए प्रदान करता है:

$iframe = $('<iframe />', { 
    id: "iframe", 
    src=: $(this).attr('rel'), 
    name: "iframe" 
}); 
+0

प्रश्न संपादित किया गया। कृपया संपादन देखें। – Shaokan

+0

@ सोकोकन आपने पहले से ही कहा है कि 'rel' उपयोगकर्ता इनपुट पर आधारित नहीं है :) –

+0

हाँ यह बस सुनिश्चित हो गया था :) धन्यवाद वैसे भी, जब सुरक्षा की बात आती है तो मैं थोड़ी पागल हो जाती हूं। – Shaokan

1

जब तक हमलावर लिंक की रिलायंट विशेषता प्राप्त नहीं कर लेता है तो यह सुरक्षित होना चाहिए।

हालांकि यह कहना मुश्किल है कि कोड का एक टुकड़ा सुरक्षित है या पर्यावरण के विस्तृत विवरण के बिना नहीं, जहां यह चलता है। एक अलग बटन से कोड के "सुरक्षित" टुकड़े तक पहुंचना संभव हो सकता है, तुरंत आपकी धारणा बनाते हुए कि रिलायंटिटी को अमान्य नियंत्रित किया जाता है।

हालांकि, जब तक आप ध्यान देते हैं कि उपयोगकर्ता पृष्ठ को आपके पृष्ठ में कहीं भी प्रदान नहीं किया जाना चाहिए, तो आपको सुरक्षित होना चाहिए। इसका मतलब है कि आपको प्रत्येक उपयोगकर्ता द्वारा आपूर्ति किए गए इनपुट से बचना होगा, खासकर यदि वह इनपुट आपकी साइट पर कहीं और आउटपुट हो (उदाहरण के लिए, समाचार लेख पर एक टिप्पणी)।

संबंधित मुद्दे