تنفيذ جافا سكريبت من Flex:هذه وظيفة جافا سكريبت خطير ؟

StackOverflow https://stackoverflow.com/questions/20510

  •  09-06-2019
  •  | 
  •  

سؤال

لدي فليكس التطبيق الذي يحتاج إلى القدرة على إنشاء وتنفيذ جافا سكريبت.عندما أقول هذا, يعني أنا بحاجة إلى تنفيذ جافا سكريبت الخام التي في بلدي فليكس تطبيق (لا جافا سكريبت القائمة طريقة)

أنا حاليا القيام بذلك عن طريق تعريض التالية جافا سكريبت الطريقة:

function doScript(js){ eval(js);}

ثم يمكن أن تفعل شيئا مثل هذا في فليكس (ملاحظة:أنا أفعل شيئا أكثر جوهرية ثم مربع تنبيه في سلك معزول التطبيق):

ExternalInterface.call("doScript","alert('foo'));

سؤالي هو: هل هذا فرض أي مخاطر أمنية ، وأنا على افتراض انه ليس منذ فليكس JasvaScript كل تشغيل العميل...

هل هناك طريقة أفضل للقيام بذلك ؟

هل كانت مفيدة؟

المحلول

هناك حاجة وظيفة جافا سكريبت أول حجة ExternalInterface يمكن أن يكون أي شفرة جافا سكريبت, فإنه لا يجب أن يكون اسم الدالة (الوثائق يقول ذلك ، ولكن من الخطأ).

جرب هذا:

ExternalInterface.call("alert('hello')");

نصائح أخرى

هذه ليست خطرة في حد ذاتها, ولكن لحظة تمرير أي مستخدم البيانات المقدمة إلى وظيفة ، إنه قد حان من أجل حقن رمز استغلال.هذا القلق ، و ما أريد تجنب.أعتقد أن أفضل نهج فقط فضح الوظائف تحتاج, و لا شيء أكثر.

بقدر ما أعرف ، أنا بالتأكيد لا أحد القراصنة ، أنت على ما يرام تماما.حقا, إذا أراد شخص ما, يمكن استغلال التعليمات البرمجية الخاصة بك على أي حال clientside, ولكن أنا لا أرى كيف يمكن استغلال تعليمات برمجية من جانب الخادم الخاص بك باستخدام جافا سكريبت (إلا إذا كنت تستخدم خادم جافا سكريبت)

أنا لا أرى هذا يتيح لهم القيام بأي شيء أنها لا يمكن القيام به بالفعل من خلال الاتصال eval.إذا كان هناك ثغرة أمنية يتم تقديمها هنا, أنا لا أرى ذلك.

تذكر أيضا أن السيناريو الإجراءات التي تسيطر عليها "AllowScriptAccess" الوسم في البيان.إذا كانت صفحة الويب التي لا تريد هذه الإجراءات ينبغي أن لا تسمح النصوص أن أصل الكلمة.

http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_16494

ExternalInterface.call("eval", "alert('hello');");
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top