gpt4 book ai didi

sql - 如何防止 MySQL 命令行 shell 界面中的 SQL 注入(inject)?

转载 作者:IT王子 更新时间:2023-10-28 23:50:00 25 4
gpt4 key购买 nike

我使用 shell 脚本与 MySQL 数据库通信。 MySQL 支持将查询指定为 shell 参数,如下所示:

mysql my_db -B -N -e "select id from Table"

但是,如果我有一个参数,我想在查询中使用它,我如何才能防止注入(inject)攻击?

一种简单的方法是将变量值粘贴到请求中,但这不是很安全:

mysql my_db -B -N -e "select id from Table where name='$PARAM'"

是否有任何技巧或记录的接口(interface)可以从命令行进行注入(inject)安全查询?

最佳答案

您可以对值进行 base64 编码,然后在 MySQL 中对其进行 base64 解码。 MySQL 中有 UDF,用于将 Base64 数据转换为普通数据。此外,大多数系统都有 uuencode,或用于 base64 编码数据的“base64”命令。

关于sql - 如何防止 MySQL 命令行 shell 界面中的 SQL 注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4450747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com