我需要在我的网站上提供用户提交的脚本(有点像jsfiddle).我希望脚本能够以安全的方式在访问者浏览器上运行,与它们所服务的页面隔离.由于代码是由用户提交的,因此无法保证它是值得信赖的.
现在我可以想到三个选择:
top.location.href
例如,改变,这是不太理想的.http://jsfiddle.net/PzkUw/上面有其他解决方案或建议吗?
更新
如果,正如我怀疑的那样,第一个选项是最佳解决方案,除了更改顶部窗口位置之外,恶意脚本可以做什么,以及如何防止这种情况?我可以操纵或拒绝基于静态代码分析某些脚本,但是这是很难给出对象可以被访问的方式的数量和总的难度分析JavaScript的静态.至少,它需要一个完整的解析器和一些复杂的规则(一些,但我怀疑不是所有,其中存在于JSLint中).
我试图为我的IAP应用程序创建一个测试用户进行测试.Apple要求输入真实的信用卡号才能将测试用户登录到Apple商店.在进行测试时,我担心苹果商店会偶然向我收费.
您是否必须为沙盒用户提供真实的信用卡号?
随着最近改进的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和缓存.
我正在寻找一种安全运行任意Haskell代码的方法(或拒绝运行不安全的代码).
一定有:
功能我想看看:
有了这种功能,就可以实现一个能够运行任意Haskell代码的浏览器插件,这是我想到的.
编辑:我有两个答案,都很好.谢谢!可悲的是,似乎没有现成的图书馆,只是一个类似的程序.这是一个有用的资源.无论如何,我想我会等待7.2.1被释放并尝试在我自己的程序中使用SafeHaskell.
我在沙盒模式下使用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返回码,所以访问令牌有效.那么为什么我看不到任何喜欢的帖子?
由于存在如此多的语言和框架,并且新的语言和框架一直出现,我没有时间下载,安装和配置每个语言和框架来评估它.在过去,我遇到了允许用户将代码写入或粘贴到窗口中的webapps,并在浏览器中实时查看结果,通常是在教程设置中.
对于给定技术,您最喜欢的沙箱网站是什么?
编辑: @fretj提供了优秀的Google Code Playground(+1 upvote)的链接,但我认为它只是用于试验Google自己的应用程序(搜索,地图,地球,语言等).但事实证明它包含一些隐藏的宝石:除了他们的应用程序,你可以尝试他们托管的许多Javascript库,包括jQuery,jQuery UI,MooTools,Dojo和Prototype Scriptaculous.
它们都隐藏在"选择API"框中的"库"类别下.我忽略了这个类别,因为我认为这是一个名为Google Libraries的应用程序.Javascript本身也有一个Javascript类别.
我使用In App Payment销售游戏消耗品.成功付款后,我将付款收据转发到我的后端,后端使用iTunes付款后端验证收据.这在沙箱环境中完美无瑕.
现在我提交了我的应用程序,因此它可以得到Apple员工的批准并在App Store中发布.当然,我确保我的后端将使用itunes后端的生产环境验证付款收据,因为我希望Apple员工在生产模式下测试应用程序.但是,该应用被拒绝了.作为一个原因,我被告知购买我的消耗品不起作用(由于收据无效,我的后端拒绝了).检查我的日志后,我看到3次尝试购买.我解码了所使用的收据,看到所有这些都是"环境"="沙盒".
这是否意味着Apple测试以沙盒模式提交的应用程序?那会很疯狂!我应该在我的生产环境中允许沙箱付款还是什么?关于这个的任何事实?
我有一个网站,用户输入数学方程式(表达式),然后根据网站提供的数据(常数)评估这些方程式.所需的数学运算,包括符号,算术运算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)?