注释字段中的sql注入

Pin*_*kie 2 php mysql sql security code-injection

我有一个评论表单,包含2个字段(标题和注释).数据库包含3列id,标题和注释.评论显示基于它title类似于domain.com/index.php?id=sometitle

使用mysql_real_escape_string正确保护标题字段以进行sql注入,但是作为textarea的注释字段保持打开状态而不进行转义.我可以逃脱它,但是我想知道如果不知道标题已经被转义并且它是如何检索输出而不在该字段上使用mysql_real_escape_string而留下它会有什么害处.

Kib*_*bee 7

如果有人在你的textarea中输入了这个,会发生什么.

some comment');DELETE FROM COMMENTS;--
Run Code Online (Sandbox Code Playgroud)

如果你插入评论的查询是这样的

INSERT INTO Comments(Title,Comment) VALUES('$title','$comments');
Run Code Online (Sandbox Code Playgroud)

那你就有问题了.结果查询将是

 INSERT INTO Comments(Title,Comment) VALUES('some title','some comment');DELETE FROM COMMENTS;--'
Run Code Online (Sandbox Code Playgroud)

或者以更易读的格式进行布局

INSERT INTO Comments(Title,Comment) VALUES('some title','some comment');
DELETE FROM COMMENTS;--'
Run Code Online (Sandbox Code Playgroud)

- '最后只是创建一个注释,以摆脱任何额外的SQL,使其无法正确解析.