让用户将数据设置到数据库的最安全的方法

时间:2015-02-13 09:17:00

标签: php html mysql sql

背景很少。 我正在建立一个帐户系统论坛。

所以很自然地,他们必须将数据插入数据库,而不是在论坛中发言。

让用户在textarea中输入数据最安全的方法是什么?

是否离开以便他们不能只输入DROP TABLE 'USERS'或其他可能影响我的论坛的内容?

现在我知道有一些解决方案,但我怎么能这样做,以便他们能够使他们的文本看起来很好(<h1>,<img>)等,但不能做正确的SQL查询?

有点像这个页面,我可以在这里输入各种各样的外观,但我无法做任何事情来伤害页面。

感谢。

-Kevin

2 个答案:

答案 0 :(得分:1)

{strong> SQL注入

mysqli_real_escape_stringPrepared statements

要保持 HTML注入,请不要做任何事情。查询已经容易受到HTML注入的攻击。<​​/ p>

在您的情况下,您可能只想为论坛帖子使用编辑器,例如:TinyMCE

答案 1 :(得分:0)

你需要做(至少)两件事:

  1. 您的数据库用户应该只在指定的表格上提供所需的授权 - 因此GRANT INSERT on yourtable TO youruser代替GRANT ALL on yourtable TO youruser

  2. 在PHP代码中使用prepared statements,确保自己sql injection安全