需求:
转入合约一定数量其他代币+BNB,合约根据转入的BNB+ZXD自动加池子
代码如下:

攻击:

addLiquidty() 为public,且没有权限判断,而合约里本身有预存的ZXD,攻击者可以通过转入BNB到合约,然后触发addLiquidty(),再 removeLiquidty(),从而盗取合约里面的ZXD,然后卖掉套利。
解决方案:
addLiquidty() 设置为private,同时以后写合约注意,不需要的函数方法都应该设置为private,以避免出现漏洞。
本文分析了一种智能合约的安全漏洞,即攻击者如何利用公开的addLiquidty()函数非法获取合约内的ZXD代币并进行套利。文章提出了将该函数设置为private的解决方案,并强调了在编写合约时应注意限制函数访问权限的重要性。
需求:
转入合约一定数量其他代币+BNB,合约根据转入的BNB+ZXD自动加池子
代码如下:

攻击:

addLiquidty() 为public,且没有权限判断,而合约里本身有预存的ZXD,攻击者可以通过转入BNB到合约,然后触发addLiquidty(),再 removeLiquidty(),从而盗取合约里面的ZXD,然后卖掉套利。
解决方案:
addLiquidty() 设置为private,同时以后写合约注意,不需要的函数方法都应该设置为private,以避免出现漏洞。
5233
1万+

被折叠的 条评论
为什么被折叠?