草庐IT

消息安全

全部标签

第142篇 合约安全-重入锁

本篇介绍最常见的一种智能合约攻击-重入攻击,它曾导致以太坊分叉为ETH和ETC(以太经典),并介绍如何避免它。1.重入攻击重入攻击是智能合约中最常见的一种攻击,攻击者通过合约漏洞(例如fallback函数)循环调用合约,将合约中资产转走或铸造大量代币。著名的重入攻击事件:2016年,TheDAO合约被重入攻击,黑客盗走了合约中的3,600,000枚 ETH,并导致以太坊分叉为 ETH 链和 ETC(以太经典)链。距离TheDAO被重入攻击已经6年了,但每年还是会有几次因重入漏洞而损失千万美元的项目,因此理解这个漏洞非常重要。0xAA 抢bank的故事为了让大家更好理解,这里讲一个"黑客0xAA

javascript - 使用 transportCredentialOnly 安全性对 RESTful WCF 服务的跨域 Ajax JSON POST 支持

我之前就这个主题发表过帖子,但经过一年的其他事情,我再次设法陷入困境。我将尝试简要概述该场景以及当前使工作正常进行的尝试:在主机上托管HTML、JS等的IISWeb服务器:iis.mycompany.com(简称foo)通过主机上的Windows服务托管的WCFRESTfulWeb服务:wcf.mycompany.com(简称bar)从foo提供的Javascript通过对bar上的WCF服务进行RESTfulajax调用(GET或POST,取决于操作)来工作,显然这些是跨域调用,因为它们不在同一主机上。Javascript使用jQuery(1.7.2)框架来操作DOM并执行对bar(

javascript - 使用 JavaScript API 的 Parse 中的对象安全性 - 将用户绑定(bind)到保存的对象

在Parse中管理实体时,我需要将许多对象绑定(bind)到当前登录的用户。我的担忧是:没有后端代码确保传入的User是当前登录的用户。用户可以将任何新创建的对象分配给其他用户。他们有thisexampleTODOapp在thedocumentation中未显示云代码以确保Todo分配给的User是当前登录的用户。现在我浏览了thecode我开始认为,无论何时保存一个对象,它都会与用户相关联。谁能解释为什么这个应用程序工作以及它如何将Todo与User相关联?更新:没关系,我在他们的代码中找到了指定用户保存待办事项的位置。我的问题是,是什么阻止用户编写使用其他用户ID保存待办事项的代码

javascript - 为什么 console.log(document.getElementById( 'blah' ))) 在 Chrome 中给出不同的日志消息?

$(document).ready(function(){console.log(document.getElementById('blah'));})我真的很想知道为什么有时我会...其他时候我得到...似乎随机记录不同。 最佳答案 这看起来确实是随机的,至少在Chrome中是这样。如果您想在Chrome控制台中以一种或另一种方式强制使用它,您可以使用console.dir和console.dirxml。console.dirxml将强制输出类似于您的第一个示例,采用xml格式console.dir将像您的第二个示例一样以对象表示

javascript - 什么是 JSON 安全对象?

在凯尔辛普森的书中YouDon'tKnowJS:this&ObjectPrototypes,他写了这篇关于如何复制对象的主题:OnesubsetsolutionisthatobjectswhichareJSON-safe(thatis,canbeserializedtoaJSONstringandthenre-parsedtoanobjectwiththesamestructureandvalues)caneasilybeduplicatedwith:varnewObj=JSON.parse(JSON.stringify(someObj));Ofcourse,thatrequiresy

javascript - 为什么这个内联 javascript 没有被内容安全策略阻止?

我有一个页面,我像这样设置内容安全策略的脚本源:script-src'self'*.uservoice.com*.intuit.comajax.googleapis.comlocalhost:*当我使用我自己创建的用于测试的硬编码内联脚本加载页面时,它像预期的那样被阻止:RefusedtoexecuteinlinescriptbecauseitviolatesthefollowingContentSecurityPolicydirective:"script-src'self'*.uservoice.com*.intuit.comajax.googleapis.comlocalhost

javascript - 在javascript中重命名文档变量是否安全

我注意到GoogleClosureCompiler没有将document重命名为d以减少空间。我想不出这会破坏代码的情况(即document指向其他东西)。实际上,window也是如此。是否有理由以这种方式保护文档?==编辑==通过重命名,我正在考虑重新分配它。示例如下。vard=document;varobj1=d.getElementById("obj1");varobj2=d.getElementById("obj2");...//withenoughusesofdocumentsoitmakestoreassignitsize-wise. 最佳答案

javascript - 为什么我的消息没有发送到带有此处理程序的 Socket.io 房间?

向指定房间发送消息的方式inSocket.ioaccordingtothedocs看起来真的很简单。在下面的代码中是一个处理程序,是一个更大模块的一部分,但功能应该都很简单,特别是因为我正在显示公开每个变量代表什么的日志:module.exports.handle=function(client,data,socket,sessions,callback){debug.log('Client,'+data.name+'sentmessage:'+data.message);debug.log(JSON.stringify(data,null,3));varsessionId=data.

javascript - SwfObject - 在没有 "Allow to run..."firefox 消息的情况下检测 flash

我一直在我的一个项目中使用swfobject来检测最终用户是否安装了Flash版本。问题出在Firefox上,因为它显示消息:“允许运行Adob​​eFlash?”这是我想避免的事情。这不是要向最终用户显示替代内容,我只想尝试检测Flash,如果未安装flash,则不显示任何内容,但如果安装了flash,则不要显示Allow在Firefox中运行...消息。有谁知道有什么方法可以防止SwfObject发生这种情况吗?注意:只需在htmlheader中包含下一行:它会触发允许运行消息:S如果您认为有更好的swfobject替代品来解决这个问题,并且它是一个很好的多用途swf处理程序工具,

javascript - TamperMonkey - 不同子域上的脚本之间的消息

我有两个脚本。每个都在我们公司的不同子域上运行"Example.com".Script#1--house.example.comScript#2--bob.fred.example.com相同的域,不同的子域。当特定元素出现在house.example.com上时,我需要向在bob.fred.example.com上运行的脚本发送消息由于Google扩展程序可以在扩展程序之间交换消息,因此TamperMonkey必须有一种方法可以在同一扩展程序内、脚本之间交换消息——尤其是当它们在相同的二级域上运行时。谁能指出我正确的方向?一两个例子将是值(value)连城的。更新:虽然Gothdo引