设置php.ini,my.cnf和httpd.conf(apache2.conf)charsets有什么害处?

时间:2010-06-03 13:26:00

标签: php mysql database security apache

我在考虑设置

php.ini my.cnf httpd.conf default charsets=UTF-8

该网站仅限瑞典语。

我有一些带有特殊字符的文件夹,还有一些文件。

这样做会有什么危害吗?

跨浏览器安全吗?

由于

2 个答案:

答案 0 :(得分:1)

唯一可能的危害是HTTP守护程序可能告诉浏览器网页的charset(编码)或其他资源实际上不是UTF-8。

一般情况下,设置默认字符集是一个坏主意,除非您确定所有资源都是UTF-8,或者您已准备好根据具体情况覆盖默认值。请记住,HTTP标头中指定的字符集会覆盖您在页面本身中指定的任何内容。如果没有指定页面的charset,那么浏览器现在具有强大的启发式来确定页面的字符集,因此最好不要指定字符集而不是指定错误的字符集。

答案 1 :(得分:0)

是的,可以通过更改您的字符集来引入漏洞。

如果将MySQL客户端的编码更改为GBK,则可能存在SQL注入问题,因为this breaks addslashes()。我不认为这是UTF8的问题,虽然我还没有测试过。无论如何你应该确保使用mysql_real_escape_string(),或者更好地使用像PDO这样的参数化查询库,如果你连接到mysql数据库,它会自动使用mysql_real_escape_string()。

对于XSS,我会使用htmlspecialchars($var,ENT_QUOTES,'UTF-8')