导航:首页 > 编程语言 > 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危险字符相关的资料

热点内容
什么是程序员才懂得梗 浏览:395
pdftodwgconverter 浏览:960
linux找不到sqlplus 浏览:399
什么app五险在哪里查询 浏览:925
单片机农历 浏览:438
g70如何编程 浏览:648
合成游戏源码h5 浏览:348
pdf出现空白页 浏览:243
平行加速app怎么退订 浏览:306
mac文件夹怎么重新命名 浏览:884
手机app怎么用在平板上 浏览:235
服务器cpuc2什么意思 浏览:709
程序员的绩效型年终奖 浏览:584
程序员心里不舒服 浏览:463
检测程序员 浏览:979
程序员一言不合就被裁员 浏览:757
安卓手机上的键盘怎么换 浏览:49
孩子的火车票怎么通过app退票 浏览:843
中望dim标注命令是什么 浏览:648
大人喝奶瓶解压吗 浏览:203