标签: sandbox

如何沙箱不受信任的用户提交的JavaScript内容?

我需要在我的网站上提供用户提交的脚本(有点像jsfiddle).我希望脚本能够以安全的方式在访问者浏览器上运行,与它们所服务的页面隔离.由于代码是由用户提交的,因此无法保证它是值得信赖的.

现在我可以想到三个选择:

  • 在来自不同域的iframe中提供用户提交的内容,并依赖于同源策略.这需要设置一个我想尽可能避免的额外域名.我相信这就是jsfiddle的做法.脚本仍然可以做一些损坏,top.location.href例如,改变,这是不太理想的.http://jsfiddle.net/PzkUw/
  • 使用sandbox属性.我怀疑这在浏览器中得不到很好的支持.
  • 在提供脚本之前清理脚本.我宁愿不去那里.

上面有其他解决方案或建议吗?

更新

如果,正如我怀疑的那样,第一个选项是最佳解决方案,除了更改顶部窗口位置之外,恶意脚本可以做什么,以及如何防止这种情况?我可以操纵或拒绝基于静态代码分析某些脚本,但是这是很难给出对象可以被访问的方式的数量和总的难度分析JavaScript的静态.至少,它需要一个完整的解析器和一些复杂的规则(一些,但我怀疑不是所有,其中存在于JSLint中).

javascript iframe sandbox same-origin-policy

32
推荐指数
2
解决办法
5659
查看次数

苹果沙箱测试用户帐号?

我试图为我的IAP应用程序创建一个测试用户进行测试.Apple要求输入真实的信用卡号才能将测试用户登录到Apple商店.在进行测试时,我担心苹果商店会偶然向我收费.

您是否必须为沙盒用户提供真实的信用卡号?

sandbox app-store

29
推荐指数
1
解决办法
1万
查看次数

请登录以使用PayPal沙箱功能

随着最近改进的PayPal开发者网站,我在尝试使用PayPal集成测试我的网站时遇到了很多问题.

问题1:我无法从网站上查看它应该将我带到sandbox.paypal.com,它返回了我的常见错误"请登录以使用PayPal沙盒功能".我已确认我已登录developer.paypal.com的开发者网站.

问题2:在Applications> Sandbox帐户下,在其中一个帐户中,我通过点击"Sandbox site"重定向到www.paypal.com上的实时网站.它应该带我到sandbox.paypal.com所以我可以登录到沙盒帐户.目前这是不可能的.

问题3:当我访问www.paypal.com时,我意识到我从developer.paypal.com退出了.某种cookie问题?

最重要的是,我尝试使用其他浏览器进行故障排除,清除Cookie和缓存.

paypal sandbox paypal-sandbox

29
推荐指数
2
解决办法
9266
查看次数

安全执行不受信任的Haskell代码

我正在寻找一种安全运行任意Haskell代码的方法(或拒绝运行不安全的代码).

一定有:

  • 模块/功能白名单
  • 执行超时
  • 内存使用限制

功能我看看:

  • 杀死线程的能力
  • 将模块编译为本机代码
  • 缓存已编译的代码
  • 同时运行几个解释器
  • 编译器错误的复杂数据类型(String中的简单消息)

有了这种功能,就可以实现一个能够运行任意Haskell代码的浏览器插件,这是我想到的.

编辑:我有两个答案,都很好.谢谢!可悲的是,似乎没有现成的图书馆,只是一个类似的程序.这是一个有用的资源.无论如何,我想我会等待7.2.1被释放并尝试在我自己的程序中使用SafeHaskell.

haskell sandbox execution isolation

27
推荐指数
2
解决办法
1006
查看次数

Instagram API没有为沙盒用户找到任何喜欢的帖子

我在沙盒模式下使用Instagram API.我正在尝试使用经过身份验证的访问令牌从Instagram API访问用户喜欢的帖子.此用户是我的应用程序的已接受沙箱用户之一,并且喜欢了一些帖子.

如果我使用相同的令牌调用其他端点,我会获得一些数据,但访问/users/self/media/liked返回空数据.

我正在使用此网址:

https://api.instagram.com/v1/users/self/media/liked?access_token={verified access token}
Run Code Online (Sandbox Code Playgroud)

这是我收到的结果:

{"pagination": {}, "meta": {"code": 200}, "data": []}
Run Code Online (Sandbox Code Playgroud)

因为它具有200返回码,所以访问令牌有效.那么为什么我看不到任何喜欢的帖子?

api sandbox instagram instagram-api

27
推荐指数
2
解决办法
2万
查看次数

如何在不安装新语言或框架的情况下尝试新语言或框架?

由于存在如此多的语言和框架,并且新的语言和框架一直出现,我没有时间下载,安装和配置每个语言和框架来评估它.在过去,我遇到了允许用户将代码写入或粘贴到窗口中的webapps,并在浏览器中实时查看结果,通常是在教程设置中.

对于给定技术,您最喜欢的沙箱网站是什么?

编辑: @fretj提供了优秀的Google Code Playground(+1 upvote)的链接,但我认为它只是用于试验Google自己的应用程序(搜索,地图,地球,语言等).但事实证明它包含一些隐藏的宝石:除了他们的应用程序,你可以尝试他们托管的许多Javascript库,包括jQuery,jQuery UI,MooTools,DojoPrototype Scriptaculous.

它们都隐藏在"选择API"框中的"库"类别下.我忽略了这个类别,因为我认为这是一个名为Google Libraries的应用程序.Javascript本身也有一个Javascript类别.

web-applications sandbox

26
推荐指数
1
解决办法
1993
查看次数

iOS In App Purchase:Apple审核人员会测试实时或沙盒环境吗?

我使用In App Payment销售游戏消耗品.成功付款后,我将付款收据转发到我的后端,后端使用iTunes付款后端验证收据.这在沙箱环境中完美无瑕.

现在我提交了我的应用程序,因此它可以得到Apple员工的批准并在App Store中发布.当然,我确保我的后端将使用itunes后端的生产环境验证付款收据,因为我希望Apple员工在生产模式下测试应用程序.但是,该应用被拒绝了.作为一个原因,我被告知购买我的消耗品不起作用(由于收据无效,我的后端拒绝了).检查我的日志后,我看到3次尝试购买.我解码了所使用的收据,看到所有这些都是"环境"="沙盒".

这是否意味着Apple测试以沙盒模式提交的应用程序?那会很疯狂!我应该在我的生产环境中允许沙箱付款还是什么?关于这个的任何事实?

sandbox in-app-purchase ios

26
推荐指数
1
解决办法
1万
查看次数

在Python中评估来自不安全用户输入的数学方程式

我有一个网站,用户输入数学方程式(表达式),然后根据网站提供的数据(常数)评估这些方程式.所需的数学运算,包括符号,算术运算min(),max()以及其他一些基本功能.一个示例等式可以是:

max(a * b + 100, a / b - 200)
Run Code Online (Sandbox Code Playgroud)

人们可以简单地eval()使用Python,但我们都知道这会导致网站泄露.进行数学方程式评估的安全方法是什么?

  • Python有什么数学方程式解析和评估引擎

  • 如果选择使用Python本身来评估表达式,那么任何Python沙箱都会限制Python,因此只有用户供应商操作符和函数可用.完全成熟的Python,如定义函数,应该完全禁用.子流程是可以的(参见PyPy沙箱).特别是,应该关闭用于利用内存和CPU使用的循环和其他漏洞.

  • 任何其他方法,例如使用命令行二进制(bc)?

python eval sandbox

25
推荐指数
2
解决办法
1798
查看次数

是否有一个很好的基于浏览器的沙箱来练习正则表达式?

我正在寻找基于浏览器的正则表达式沙箱的建议来练习一些概念表达式的证明.

regex sandbox

24
推荐指数
3
解决办法
7616
查看次数

可扩展的JavaScript应用程序架构的良好实现(Sandbox by Nicholas Zakas)?

我最近观看了一个关于模块化JavaScript架构(包括沙箱)的好视频.我想知道是否有任何东西在野外实施?

框架是可下载的还是实现的?

视频很棒,但它们只是理论而且没有代码可用.原创视频在这里.

javascript modularity sandbox javascript-framework

24
推荐指数
2
解决办法
7528
查看次数