من روی یک IDE کار می کنم که باید JavaScript کاربر را در مرورگر اجرا کند. من نمی خواهم فقط کد دلخواه را مورد ارزیابی قرار دهم ، به خصوص که ممکن است کد بین کاربران به اشتراک گذاشته شود. از اینجا و منابع دیگر یاد گرفتم که iframes ابزاری برای این امر باشد.

از طرف دیگر ، مواردی مانند Caja نیز پیشنهاد می شود ، و من هیچ کد نمونه ای را پیدا نکردم به خصوص در مورد نحوه استفاده از iframes برای این منظور. . این باعث می شود احساس ناراحتی کنم که بتوانم بدون هیچ گونه بازخورد آنچه را که من به وجود آمده ام بپذیرم.

برای تکرار ، من می خواهم:

  • بگذارید کاربران برنامه های جاوا اسکریپت کوچکی بنویسند که با "جهان" در یک مجموعه کوچک ارتباط برقرار کند. API های مجاز ،
  • آنها را در مرورگر خود اجرا کنید ،
  • این مورد را برای کاربرانی که کدی را امتحان می کنند که خودشان ننوشته اند ، ایمن می سازد. ] می تواند یک iframe sandboxed برای src child.html راه اندازی کند. iframe کد کاربر ارسال می شود ، که در آن eval d است و برخی از API ها را فراخوانی می کند (ارسال شده از طریق postMessage ). (چک های مبدأ وجود ندارد و targetOrigin '*' است زیرا من روی پرونده آزمایش می کنم: // .)

    index.html

    
    
    
    
    

    child.html

    
    
    
    
    
    
    
    

    آیا این رویکردی مناسب برای ماسهبازی است؟ آیا روشهایی برای فرار از ماسهبازی با آنچه من در اینجا نوشتم وجود دارد؟ به عنوان یک جایزه ، من از استفاده از Caja یا سایر کتابخانه هایی که با توجه به این موضوع ذکر می شوند ، می توان نتیجه بهتری گرفت؟

</p>
<pre>آیا این sandbox جاوا اسکریپت کاربر من از IDE وب من به درستی خواهد بود؟<br />