- 浏览: 242206 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
thepastsee:
304572183股票交流 欢迎加入
实时股票 -
345161974:
很不错,我第一个接触的CSS卡片布局效果,多谢
css卡片效果
网站编程中的常见安全问题(一)
1. 非法的数据过滤
1.1 数据检查:
通过链接传递的常数你永远要假定它可以是任意的值。一个合格的程序,它首先有一套过滤系统,过滤数据的有效性。
一般来说,在js 的客户端,会有一个过滤,提示你输入了非法的数据,但是 js 很容易被绕过,所以,服务器端还要执行相同的检查。
一般检查的项目如下:
1. 是否是布尔类型
2. 是否是一个字母
3. 是否是整数
4. 是否是小数
5. 是否是个email
6. 是否是个url
7. 是否是个正确的电话号码
8. 是否是一个正确的用户名
经过数据过滤后,数据的安全性大大提高了。比如下面的情况就不会发生:
SELECT * FROM table WHERE id = $id
我把id 改成 “ 1 or 1 ”
那就把表中所有的数据都显示出来了。
因为ID 是 int 类型的限制,所以, 1 or 1 是个非法的数据。
1.2 文件检查:
当然,这样的数据过滤,并不完全。看下面的例子:
readfile ($_GET['file']);
$_GET['file'] 是一个文件,没有错,或许用户传递的是对的。但是
这样的情况可能发生
readfile("/etc/passwd")
这就很危险了。
如果,要控制用户读写文件,必须要限制用户能读写的目录。在该目录下读写任何文件是安全的。
1.3 防止 SQL 注入:
同样的,一个很典型的例子是SQL 里面的例子:
SELECT * FROM table WHERE use r = ‘ $user ’
从数据检查的角度来说,用户输入wang 's 这样的语句是正确的,但是,如果是输入这样的数据,上面的SQL 会有错误,而且还不能保证安全。我们要把 ' 替换成 \' 。PHP 中提供了很多相关的解决方案,看看 PHPWIND 的解决方案:
Add_S( $_POST );
Add_S( $_GET );
Add_S( $_COOKIE );
}
Add_S( $_FILES );
其中ADD_S 函数如下:
function Add_S( & $array ){
if ( is_array ( $array )) {
foreach ( $array as $key => $value ) {
if ( is_array ( $value )) {
Add_S( $array [ $key ]);
} else {
$array [ $key ] = addslashes ( $value );
}
}
}
}
1.4 防止跨站脚本攻击:
很多系统,你输入一段JS 代码的评论,居然能够正常执行。这是一件很危险的事情,很多时候,你就可以利于你的 JS 默默的做坏事,偷取别人的帐户信息。
这样的脚本,能正常保存进入数据库,而且对服务器没有任何的伤害,但是,对用户来说,这是个灾难。
在PHP 中,可以简单的用 htmlspecialchars 这个函数进行解决。
当然很多时候,有一个矛盾,就是允许用户通过html 进行编写。博客园就有这样的漏洞。实际上,只要你们访问我的博客,我就有办法获取你的 cookie ,进而,我通过这个 cookie ,我就可以给你发布一个征婚的信息。
解决用户需要html 的情况是通过
1. 自定义一些标记,比如discuz 的解决方案。不允许填入 html 标签。
2. 小心的过滤掉 <script> 的标签,这样危险的标签最好不要存在。
3. 对外部的图片,一定要十分的小心。很有可能,它会是病毒。最好,服务器端在用户加入外部图片的第一次,对图片进行检查(我一般会用gd 库 对图片进行大幅度的缩放,如果能正常缩放,嵌入病毒的可能性比较的小,我对病毒的知识了解比较少,不知道怎么判断一个图片是否包含恶意代码),并进行缓存。避免读取不安全的图片。
发表评论
-
phphphphphphph
2012-03-01 22:27 0回归回归lkjlkjlkjlkjlkjlkjlkj -
php_相对路径_转
2012-03-01 22:07 0<?php $str1 = "/home/i ... -
php_自定义排序 关联数组
2012-03-01 21:11 0<?php //用PHP设计一个函数,对学生英语考试得 ... -
php_讲义
2012-02-29 13:07 0ewrwerwer -
php 禁止危险的函数_转
2012-02-27 12:28 0阿酷影 一些需要禁用的PHP危险函数 ... -
转_phpcan't return a result set in the given context及参数解释
2012-02-13 23:49 1285关键就是两点 defin ... -
php_可以编的表格
2012-01-29 10:42 870虽 -
php_oa
2011-10-20 16:48 679dfsdfsfsf -
jquery_upload
2011-09-12 13:07 697http://fangyong2006.iteye.com/b ... -
php__表单处理
2011-08-21 17:04 839sdfadfadsf -
$_SESSION 无法跨页保存数据
2011-08-21 11:46 931今天可遇到问题 $_SESSION 无法跨页保存数据 原 ... -
php 下载地址
2011-08-13 14:51 781window http://windows.php.n ... -
订单号__14位_转
2011-06-27 23:45 907http://bbs.phpchina.com/thread- ... -
9个免费 php 库_转
2011-06-24 21:17 10329个强大免费的PHP库 & 20 你应该知道的PHP ... -
php_错误解决_sessioin
2011-06-01 16:29 1072写购物车时遇到问题, Fatal error ... -
php面试题_转
2011-05-27 01:25 795kjljk -
jquery_ajax_table_php
2011-05-27 01:04 709jljklkj -
php算法_王伟阳
2011-05-23 13:17 816232342 -
php简历
2011-05-18 00:39 1083kjlkjlkj -
黑夜路人转__
2011-05-13 21:41 797lklk
相关推荐
为了确保软件产品的安全性,减少由于软件安全问题带来的风险和损失,《信息安全技术应用软件安全编程指南》这一标准应运而生。它旨在为软件开发者提供一套全面的安全编程规范,以提高软件产品的安全性。 #### 二、...
根据给定的标题“C++编程常见错误”和描述“C++精品适合考研同学复习,强烈推荐”,本文将深入探讨C++编程过程中常见的错误类型及其解决方法,为备考的同学提供有益的学习资料。 ### C++编程常见错误概览 C++作为...
在Python安全编程中,可以通过编写脚本来自动化这一过程。 8. Whois查询:Whois是一种用于查询域名注册信息的协议。在Python中,可以通过执行Whois查询来获取特定域名的注册人、联系方式、注册时间等信息。 9. ...
【小红书旋转验证码自动识别验证】项目是一个旨在解决在线平台中常见的安全验证问题的实践。这类验证码通常设计为旋转的字母或数字组合,目的是防止自动化脚本或机器人进行恶意操作。通过自动化识别这种验证码,我们...
这可能是指一个网站或论坛,用户可以在该平台上获取更多关于西门子S7-200系列的资源和讨论,包括编程电缆的制作技巧、常见问题解答以及软件更新等。 5. **西门子编程软件**: 对于S7-200系列,通常使用Step 7 ...
本书“ASP动态网站编程”深入浅出地讲解了ASP技术的核心概念、语法和实际应用,旨在帮助读者掌握ASP动态网站开发的基本技能。 1. ASP基础: - ASP的运行环境:IIS(Internet Information Services)是ASP的主要...
然而,在实际开发过程中,会遇到一些常见问题,本文将针对这些问题进行详细探讨。 1. **站点创建问题**: 创建PHP动态网站时,首先需要设置站点。在Dreamweaver中,应避免使用中文命名站点,并确保站点保存在...
总结来说,“二手交易网站仿转转咸鱼PHP源码乘风破浪版”是一个实践性很强的学习资源,它涵盖了PHP开发中的许多核心概念和技术,包括Web应用框架、数据库操作、支付接口集成等。通过深入研究,开发者不仅能掌握二手...
USB转485编程电缆是一种常见的通信设备,用于将计算机的USB接口转换为RS-485接口,以便与支持RS-485协议的远程设备进行数据交换。这种电缆通常用于工业自动化、楼宇自动化、物联网设备配置和监控等领域。在使用USB转...
ASP.NET编程中的安全措施至关重要,因为它们保护了网站和用户数据免受各种威胁。以下是针对标题和描述中提到的十个安全措施的详细说明: 1. **MD5加密用户密码**:MD5是一种广泛使用的哈希函数,用于将密码转换为不...
总结来说,ARP协议是网络通信中的关键环节,理解和掌握ARP编程能够帮助我们更好地理解和解决网络问题,同时也有助于提高网络安全性。无论是进行网络调试还是开发网络安全工具,都需要对ARP有深入的理解和实践经验。...
标题中的“2023年1月更新鲨鱼源码最新转转交易猫咸鱼整合源码”表明这是一个关于二手交易平台源代码的更新版本,它整合了“鲨鱼源码”、“转转源码”以及“交易猫源码”,这三个都是在IT行业中常见的二手交易平台的...
【网站源码、Discuz_X2_SC_GBK】是一个与网站建设和社区论坛转换相关的资源包。这个包主要用于帮助用户将他们的原有社区平台转换为Discuz! X系列的产品,这是一个非常流行的开源论坛系统,以其强大的功能和灵活性而...
《C# ASP.NET网站编程宝典》是一份深入探讨C#在网站开发领域的实践指南,旨在帮助开发者掌握关键技能和实用技巧。这份资料涵盖了多个重要主题,包括数据库设计、多线程编程、数据库管理以及前端页面美化等。下面将...
这份文档通常会涵盖以下内容:系统兼容性、数据预处理、转换流程、错误处理以及常见问题解答等,确保用户即使不具备高级编程知识也能顺利完成迁移。 `application`目录则包含了插件的具体实现代码,这些代码与...
【企业电子商务网站编程语言】 网站规划对于任何企业来说都是至关重要的,尤其是对于电子商务网站,选择合适的编程语言将直接影响网站的功能、性能以及用户体验。本讲座主要关注企业电子商务网站中常见的编程语言,...
在ASP.NET 2.0中,ASP.NET Web Forms是一个关键组件,允许通过拖放控件和事件驱动编程来构建交互式网页。 在前端设计上,系统强调了使用Div和CSS。Div(Division)是HTML中的一个布局容器元素,通过CSS可以对其进行...
8. 安全性:了解常见的Web安全问题,如SQL注入和XSS攻击,以及如何防范这些威胁。 通过深入学习和实践这些内容,你将能够构建出功能丰富的动态网站,并为后续学习更高级的PHP版本和Web开发技术打下坚实的基础。
"wap常见问题问答大全"这个标题和描述暗示了这是一个关于WAP(无线应用协议)的文档集合,其中包含了用户在使用WAP过程中可能遇到的各种问题及相应的解答。WAP是一种标准协议,允许移动设备通过无线方式访问互联网或...