1

luaSQL の準備済みステートメントに関するドキュメントはほとんどありません。そこで、LuaSQL で準備済みステートメントを使用するコードをまとめてみました。残念ながら、それは機能していません。
(私はmysqlデータベースを使用しています)

luasql = require "luasql.mysql"
env = assert (luasql.mysql())
con = assert (env:connect("database","user","password","localhost"))
name = "insert_sql_injection_code_here"
query= "INSERT INTO `table`(`text`) VALUES ('"..name.."')"
cur = assert (con:execute(query))
-- As you can see, query is vulnerable to SQLinjection. Fix: use prepared statements:
smtp = assert(con:prepare("insert into settings (text) values(:p_name)"))
con:bind_names({p_name=name})
cur = assert (con:execute())

次の出力が得られます。

lua: test.lua:8: attempt to call method 'prepare' (a nil value)

LuaSQL を使用した Lua での準備済みステートメントの実例はありますか?

4

0 に答える 0