我使用PDO读取/输入MySQL数据以防止SQL注入
Dispatcher
在数据库中输入字符之前还是在浏览器中显示数据库中的数据之前,是否有任何原因我应该转义字符?恶意用户是否可以通过将JavaScript代码记录到我的数据库来利用我的网站或其他用户?
谢谢!
答案 0 :(得分:2)
->prepare();
方法以及bindParam()
为您完成所有操作,因此无需执行任何其他操作。
当你将一个param绑定到预准备的语句变量时,它会将原始数据放入,而不是像以前那样将它添加到查询中! :)
答案 1 :(得分:2)
你当然不应该逃避为绑定参数传递的参数。
根本没有逃脱现象。它是SQL引擎,它使用占位符编译语句,并在以后单独接收参数值,未转义。 SQL引擎能够组合编译语句(此时不再有SQL字符串)和参数值,以确保SQL注入的整个问题变得无关紧要。
转移为绑定占位符传递的值会产生负面影响。 SQL引擎确实需要这些值,如果它们以某种方式被转义,引擎将不会忽略它们,而是从字面上理解它们。