导航:首页 > 编程语言 > php危险字符

php危险字符

发布时间:2023-09-06 16:48:20

‘壹’ php中防止SQL注入,该如何解决


防sql注入的一个简单方法就是使用框架,一般成熟框架中会集成各种安全措施。

当然也可以自己处理,如果用户的输入能直接插入到SQL语句中,那么这个应用就易收到SQL注入的攻击。我认为最重要的一点,就是要对数据类型进行检查和转义。

php.ini

------------

display_errors 选项,应该设为display_errors = off。这样 php 脚本出错之后,不会在 web 页面输出错误,以免让攻击者分析出有作的信息。

打开magic_quotes_gpc来防止SQL注入,magic_quotes_gpc= Off,这个默认是关闭的,如果它打开后将自动把用户提交对sql的查询进行转换,比如把 ' 转为 '等,对于防止sql注射有重大作用。如果magic_quotes_gpc=Off,则使用addslashes()函数。


mysql 函数

---------------

调用mysql_query 等mysql 函数时,前面应该加上 @,即 @mysql_query(...),这样 mysql 错误不会被输出。同理以免让攻击者分析出有用的信息。另外,有些程序员在做开发时,当mysql_query出错时,习惯输出错误以及sql 语句。

mysql_real_escape_string -- 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集。


Sql语句

------------

对提交的 sql 语句,进行转义和类型检查。如果请求是数值型,那么调用is_numeric() 判断是否为数值。如果不是,则返回程序指定的默认值。简单起见,对于文本串,我将用户输入的所有危险字符(包括HTML代码),全部转义。由于php 函数addslashes()存在漏洞,我用str_replace()直接替换。get_magic_quotes_gpc()函数是php 的函数,用来判断magic_quotes_gpc 选项是否打开。


其它

---------

使用预处理语句和参数化查询(PDO或mysqli)。预处理语句和参数分别发送到数据库服务器进行解析,参数将会被当作普通字符处理。这种方式使得攻击者无法注入恶意的SQL。

阅读全文

与php危险字符相关的资料

热点内容
app后端php 浏览:625
中奖的app叫什么名字 浏览:92
定时关机命令批处理 浏览:941
闪电pdf 浏览:642
winform原生编译 浏览:337
同比提升比的算法 浏览:887
装什么APP可以查监狱探监旧 浏览:126
minecraft原版文件夹 浏览:148
安卓丢包怎么 浏览:428
pythontkinter例子 浏览:880
app聊主是什么意思 浏览:343
用条件编译法编写程序 浏览:475
镜像文件解压后有文件可以删吗 浏览:458
国家反诈中心app怎么帮别人注册 浏览:52
python词典哈希 浏览:97
阿里云服务器没有桌面 浏览:876
如何搭建京东自动做任务服务器 浏览:804
pasword加密原理 浏览:452
程序员学习图 浏览:460
烹饪原料pdf 浏览:903