所以我使用表单将数据输入到我的表中,然后使用


 $ username = mysqli_real_escape_string($ con,$ _POST ['username']) ;



 mysqli_real_escape_string解决SQL注入问题。如果有人试图将脚本用作输入< script>,则使用此方法将导致数据保存为这样。一些坏脚本< / script>

肯定注入不会发生,但我注意到在尝试从表中检索数据时,一旦达到保存的用户名,执行就会停止像那样。我尝试编辑表并删除< script> < / script>
部分并刷新页面,正如预期的那样,执行没有停止并正确完成。我使用以下代码从表中检索数据
require_once('dbconnect.php');

 $ title = “应用程序”;


 $ qry =“SELECT * FROM BUSINESS”;
 $ result = mysqli_query($ con,$ qry);
 $ info = array();

 while($ row_info = mysqli_fetch_assoc($ result))
 {$ info = $ row_info;
 echo“ID:”。 $ row_info ['buss_id']。 “&LT峰; br>” 中。 “用户名:”。 $ row_info ['username']。 “&LT峰; br>” 中;
 }



 注意:dbconnect.php有$ con变量。谢谢。
我还想问一下代码中的部分


 $ info = $ row_info;



 我正在按照教程进行操作,但是通过使用$ row_info变量,我可以得到相同的结果。任何澄清将不胜感激。感谢

答案 0 :(得分:1)
如果我没有弄错,你就是在谈论从表单输入中删除javascripts(例如尝试将恶意javascript保存到你的论坛/留言板,以便你将它们显示给所有其他访问者)。
mysqli_real_escape_string和prepared statements只能对SQL injections起作用,(即试图欺骗程序运行不应运行的SQL语句)。因为你应该在表单输入中使用它们。但是它们的安全性与你提出的问题不同。
在保存到数据库之前,或者在向任何人显示之前,您需要对文本输入执行HTML sanitation。你应该
答案 1 :(得分:0)
插入数据库之前
$text = addslashes(htmlspecialchars($text));
输出
$text = stripslashes(trim(implode('',explode('\\',$text))));
echo $text;
这应该可以正常使用