Golang规避 SQL 注入风险
Posted code_kd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang规避 SQL 注入风险相关的知识,希望对你有一定的参考价值。
sql 您可以通过提供 SQL 参数值作为包函数参数来避免 SQL 注入风险。包中的许多函数sql为 SQL 语句和要在该语句的参数中使用的值提供参数(其他函数为准备好的语句和参数提供参数)。
以下示例中的代码使用?符号作为 id参数的占位符,该参数作为函数参数提供:
// Correct format for executing an SQL statement with parameters.
rows, err := db.Query("SELECT * FROM user WHERE id = ?", id)
sql执行数据库操作的包函数根据您提供的参数创建准备好的语句。在运行时,sql程序包将 SQL 语句转换为准备好的语句并将其与单独的参数一起发送。
注意:参数占位符因您使用的 DBMS 和驱动程序而异。例如, Postgres 的pq 驱动程序 接受占位符形式,例如$1instead of ?.
您可能想使用fmt包中的函数将 SQL 语句组装为包含参数的字符串——如下所示:
以上是关于Golang规避 SQL 注入风险的主要内容,如果未能解决你的问题,请参考以下文章