Php 防止XSS攻击并正确编码字符
我有防止sql注入的功能 是一个很好的功能,真正的功能是防止攻击但是 开始显示字符的问题 这个词是“金融控制” 在var_dump中,我看到字符串(31)“财务控制和部门控制” 我正在尝试一些方法,但失败了2天,请帮助我Php 防止XSS攻击并正确编码字符,php,mysql,character-encoding,xss,Php,Mysql,Character Encoding,Xss,我有防止sql注入的功能 是一个很好的功能,真正的功能是防止攻击但是 开始显示字符的问题 这个词是“金融控制” 在var_dump中,我看到字符串(31)“财务控制和部门控制” 我正在尝试一些方法,但失败了2天,请帮助我 function Anti_Sql_Injection($string){ if(ini_get('magic_quotes_gpc') == 'off'){ $string = addslashes($string);
function Anti_Sql_Injection($string){
if(ini_get('magic_quotes_gpc') == 'off'){
$string = addslashes($string);
}
$string = htmlentities($string, ENT_QUOTES);
$codes = array("script","java","applet","iframe","meta","object","html","CONCAT","CHAR","FLOOR","RAND", "<", ">", ";", "'","%");
$string = str_replace($codes,"",$string);
return $string;
}
函数反Sql注入($string){
如果(ini_get('magic_quotes_gpc')=='off'){
$string=addslashes($string);
}
$string=htmlentities($string,entu引号);
$codes=数组(“脚本”、“java”、“小程序”、“iframe”、“meta”、“object”、“html”、“CONCAT”、“CHAR”、“FLOOR”、“RAND”、“、”、“;”、“%”、“%”);
$string=str_replace($code,“,$string);
返回$string;
}
试试这个
function Anti_Sql_Injection($string){
if(ini_get('magic_quotes_gpc') == 'off') {
$string = addslashes($string);
}
$string = htmlspecialchars($string, ENT_QUOTES,"UTF-8");
$codes = array("script","java","applet","iframe","meta","object","html","CONCAT","CHAR","FLOOR","RAND", "<", ">", ";", "'","%");
$string = str_replace($codes,"",$string);
return $string;
}
函数反Sql注入($string){
如果(ini_get('magic_quotes_gpc')=='off'){
$string=addslashes($string);
}
$string=htmlspecialchars($string,ENT_引号,“UTF-8”);
$codes=数组(“脚本”、“java”、“小程序”、“iframe”、“meta”、“object”、“html”、“CONCAT”、“CHAR”、“FLOOR”、“RAND”、“、”、“;”、“%”、“%”);
$string=str_replace($code,“,$string);
返回$string;
}
我还想告诉你。它通过准备好的语句内置了SQL注入。查看教程,从PDO开始。我知道它有点旧,但仍然有效,并且解释得很好。为什么要使用名为
反Sql\u Injection()的函数来防止XSS攻击?要停止SQL注入,请执行相应的、单独的操作
不要试图一箭双雕。你最终改变了数据
XSS预防变得容易了
- 您使用的是提供上下文敏感XSS转义的框架吗?
- 是的:那就使用这个功能吧。将
自动转义
块优先于手动转义过滤器(例如使用)
- 否:是否需要允许用户提供一些HTML?
- 是的:
- 否:
htmlspecialchars($string,ENT_引号| ENT_HTML5,'UTF-8')代码>
SQL注入预防变得简单
使用事先准备好的陈述。像这样的库(包装PDO)可以减少迁移的痛苦。@BrunoPinna我很高兴,我很高兴能帮上忙。祝你的项目好运。你确定添加“UTF-8”有什么不同吗?如果是的话,你能演示一下吗?确保没有任何东西能绕过你的过滤器。击败XSS的推荐方法是,而不是剥离某些单词。还可以使用块模式,或者更好地使用内容安全策略。谢谢您的提示=)