- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
现在我正在使用准备好的语句来选择/插入数据到 mysql。好的,我的问题是我发现了有关二阶攻击的信息。例如,用户在我的网站上注册。并使用像这样的电子邮件或用户名
"username '; DELETE Orders;--"
这会插入到 mysql 表中
因此,当我通过准备好的语句再次接收数据时,并在准备好的语句中再次插入/执行某些操作。
我会很安全,因为我使用准备好的语句吗?
示例:
Get Bad Data:
$sql = "SELECT * FROM USERS where USERID = 1";
...
$stmt->bind_result($username);
...
Next Query:
INSERT or do other things:
$SQL = "SELECT * FROM email WHERE USERNAME = ?";
....
$stmt->bind_param('s', $username);
...
经过我的思考,如果我这样做,我会安全吗?或者是否有可能泄漏?
但如果我这样做的话,我会受到攻击:
$sql = "SELECT * FROM email WHERE username = $username";
$stmt = $mysqli->prepare($sql);
$stmt->execute();
谢谢:-)
最佳答案
只要占位符始终如一地(无处不在!)用于所有[可变]数据,那么所有 SQL 注入(inject)攻击*都会被阻止,无论是二阶攻击还是其他攻击.
这并不意味着没有漏洞或其他攻击媒介——但它确实意味着拥有“聪明的用户名”的人将无法发送意外的“DROP”到数据库。正如所指出的,如果任何地方使用“不安全的 SQL 语句”,那么,wham! 保证将失效。
(“不安全 SQL 语句”集包括但不限于任何不对所有[可变]数据使用占位符的语句。)
快乐编码。
*当然,这假设占位符支持/数据库驱动程序中没有错误/漏洞。但那是另一个故事......
关于php - MYSQL二阶攻击问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7907978/
在做 Ch06 的练习 6.5 时 |在 Middlebrook 博士的 D-OA 方法中,我尝试制作传递函数的波德图: bodeplot[s/100+100/s*(1+10/s)](wolframa
我正在尝试做这样的事情 编辑 - 整个查询。 SELECT * FROM ride WHERE ( SELECT COUNT(*) FROM ( SELECT DISTINCT
我尝试求解简单的数值方程 - 没有源的线性波动方程:utt = v2 uxx 其中 v - 波速。 我使用初始条件: u(x, 0) = sin(x) ux(x, 0) = -v * sin(x) 对
我正在尝试使用 C++ 求解 4 个二阶多项式方程组。解决该系统的最快方法是什么?如果可能,您能否链接或编写一些伪代码来解释它?我知道涉及 Groebners 基础或 QR 分解的解决方案,但我找不到
我在 Checkmarx 中遇到错误。 Method abortJob at line 209 of XXX/classes/Monitoring.cls gets user inputfrom th
对于二阶 ODE(python 中的 dopri5 方法),下面的代码总是会导致错误:C:\Users\MY\Anaconda3\lib\site-packages\scipy\integrate\_
重要更新:我已经找到答案并将它们放在这个简单的开源库中:http://bartolsthoorn.github.com/NVDSP/检查一下,如果您在 IOS 中遇到音频过滤器问题,它可能会为您节省不
我是一名优秀的程序员,十分优秀!