【发布时间】:2017-05-15 00:05:33
【问题描述】:
我在 mysql 数据库中存储了一些数学问题,其 UTF-8 列如下:
htmlspecialchars($data, ENT_QUOTES, 'UTF-8');
将问题存储在数据库中:
log<sub>2</sub>(log<sub>5</sub>625)का मान ज्ञात करें ?
现在,我将这个问题从数据库调用到前端,如下所示:
htmlspecialchars_decode($quest, ENT_QUOTES)
显示以下输出:
log<sub>2</sub>(log<sub>5</sub>625)का मान ज्ञात करें ?
而输出应该是
log2(log5625)का मान ज्ञात करें ?
如何解决这个问题?我错过了什么?
【问题讨论】:
-
不要做
htmlspecialchars和htmlspecialchars_decode -
您好,为了保护数据库免受 SQL 注入攻击,这是我正在执行的一项附加安全措施。 htmlentities 在这方面会有所帮助吗?
-
执行
htmlspecialchars并不能防止sql注入。 -
它将单引号广告双引号转换为等效的html实体,并防止引号直接提交到数据库中
-
从SQL注入攻击,你应该使用
prepared statements
标签: php html mysqli encoding utf