من روی یک IDE کار می کنم که باید JavaScript کاربر را در مرورگر اجرا کند. من نمی خواهم فقط کد دلخواه را مورد ارزیابی قرار دهم ، به خصوص که ممکن است کد بین کاربران به اشتراک گذاشته شود. از اینجا و منابع دیگر یاد گرفتم که iframes ابزاری برای این امر باشد.
از طرف دیگر ، مواردی مانند Caja نیز پیشنهاد می شود ، و من هیچ کد نمونه ای را پیدا نکردم به خصوص در مورد نحوه استفاده از iframes برای این منظور. . این باعث می شود احساس ناراحتی کنم که بتوانم بدون هیچ گونه بازخورد آنچه را که من به وجود آمده ام بپذیرم.
برای تکرار ، من می خواهم:
- بگذارید کاربران برنامه های جاوا اسکریپت کوچکی بنویسند که با "جهان" در یک مجموعه کوچک ارتباط برقرار کند. API های مجاز ،
- آنها را در مرورگر خود اجرا کنید ،
- این مورد را برای کاربرانی که کدی را امتحان می کنند که خودشان ننوشته اند ، ایمن می سازد. ] می تواند یک iframe sandboxed برای src
child.htmlراه اندازی کند. iframe کد کاربر ارسال می شود ، که در آنevald است و برخی از API ها را فراخوانی می کند (ارسال شده از طریقpostMessage). (چک های مبدأ وجود ندارد وtargetOrigin'*'است زیرا من روی پروندهآزمایش می کنم: //.)index.html
child.html
آیا این رویکردی مناسب برای ماسهبازی است؟ آیا روشهایی برای فرار از ماسهبازی با آنچه من در اینجا نوشتم وجود دارد؟ به عنوان یک جایزه ، من از استفاده از Caja یا سایر کتابخانه هایی که با توجه به این موضوع ذکر می شوند ، می توان نتیجه بهتری گرفت؟