`

网站编程中的常见安全问题(一)_转转转

    博客分类:
  • php
阅读更多

网站编程中的常见安全问题(一)

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  的解决方案:

 

 

 

 

 

if  ( ! get_magic_quotes_gpc ()) {
    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  库 对图片进行大幅度的缩放,如果能正常缩放,嵌入病毒的可能性比较的小,我对病毒的知识了解比较少,不知道怎么判断一个图片是否包含恶意代码),并进行缓存。避免读取不安全的图片。

分享到:
评论

相关推荐

    信息安全技术 应用软件安全编程指南

    为了确保软件产品的安全性,减少由于软件安全问题带来的风险和损失,《信息安全技术应用软件安全编程指南》这一标准应运而生。它旨在为软件开发者提供一套全面的安全编程规范,以提高软件产品的安全性。 #### 二、...

    c++编程常见错误

    根据给定的标题“C++编程常见错误”和描述“C++精品适合考研同学复习,强烈推荐”,本文将深入探讨C++编程过程中常见的错误类型及其解决方法,为备考的同学提供有益的学习资料。 ### C++编程常见错误概览 C++作为...

    Python 安全编程教程.pdf

    在Python安全编程中,可以通过编写脚本来自动化这一过程。 8. Whois查询:Whois是一种用于查询域名注册信息的协议。在Python中,可以通过执行Whois查询来获取特定域名的注册人、联系方式、注册时间等信息。 9. ...

    小红书旋转验证码自动识别验证 解决在线平台中常见的安全验证问题的实践

    【小红书旋转验证码自动识别验证】项目是一个旨在解决在线平台中常见的安全验证问题的实践。这类验证码通常设计为旋转的字母或数字组合,目的是防止自动化脚本或机器人进行恶意操作。通过自动化识别这种验证码,我们...

    siemens.rar_s7-200_s7-200编程电缆_s7-300_visual c_www..siemens.200.c

    这可能是指一个网站或论坛,用户可以在该平台上获取更多关于西门子S7-200系列的资源和讨论,包括编程电缆的制作技巧、常见问题解答以及软件更新等。 5. **西门子编程软件**: 对于S7-200系列,通常使用Step 7 ...

    asp动态网站编程

    本书“ASP动态网站编程”深入浅出地讲解了ASP技术的核心概念、语法和实际应用,旨在帮助读者掌握ASP动态网站开发的基本技能。 1. ASP基础: - ASP的运行环境:IIS(Internet Information Services)是ASP的主要...

    _基于PHP Dreamweaver的动态网站开发中常见问题的探讨.pdf

    然而,在实际开发过程中,会遇到一些常见问题,本文将针对这些问题进行详细探讨。 1. **站点创建问题**: 创建PHP动态网站时,首先需要设置站点。在Dreamweaver中,应避免使用中文命名站点,并确保站点保存在...

    二手交易网站仿转转咸鱼PHP源码乘风破浪版

    总结来说,“二手交易网站仿转转咸鱼PHP源码乘风破浪版”是一个实践性很强的学习资源,它涵盖了PHP开发中的许多核心概念和技术,包括Web应用框架、数据库操作、支付接口集成等。通过深入研究,开发者不仅能掌握二手...

    usb转485编程电缆驱动安装

    USB转485编程电缆是一种常见的通信设备,用于将计算机的USB接口转换为RS-485接口,以便与支持RS-485协议的远程设备进行数据交换。这种电缆通常用于工业自动化、楼宇自动化、物联网设备配置和监控等领域。在使用USB转...

    ASP.NET编程中的十种安全措施

    ASP.NET编程中的安全措施至关重要,因为它们保护了网站和用户数据免受各种威胁。以下是针对标题和描述中提到的十个安全措施的详细说明: 1. **MD5加密用户密码**:MD5是一种广泛使用的哈希函数,用于将密码转换为不...

    ARP.rar_ARP编程_arp

    总结来说,ARP协议是网络通信中的关键环节,理解和掌握ARP编程能够帮助我们更好地理解和解决网络问题,同时也有助于提高网络安全性。无论是进行网络调试还是开发网络安全工具,都需要对ARP有深入的理解和实践经验。...

    2023年1月更新鲨鱼源码最新转转交易猫咸鱼整合源码

    标题中的“2023年1月更新鲨鱼源码最新转转交易猫咸鱼整合源码”表明这是一个关于二手交易平台源代码的更新版本,它整合了“鲨鱼源码”、“转转源码”以及“交易猫源码”,这三个都是在IT行业中常见的二手交易平台的...

    网站源码、Discuz_X2_SC_GBK

    【网站源码、Discuz_X2_SC_GBK】是一个与网站建设和社区论坛转换相关的资源包。这个包主要用于帮助用户将他们的原有社区平台转换为Discuz! X系列的产品,这是一个非常流行的开源论坛系统,以其强大的功能和灵活性而...

    C#ASP.NET网站编程宝典

    《C# ASP.NET网站编程宝典》是一份深入探讨C#在网站开发领域的实践指南,旨在帮助开发者掌握关键技能和实用技巧。这份资料涵盖了多个重要主题,包括数据库设计、多线程编程、数据库管理以及前端页面美化等。下面将...

    maccms10_其他程序数据转换插件_maccms10_

    这份文档通常会涵盖以下内容:系统兼容性、数据预处理、转换流程、错误处理以及常见问题解答等,确保用户即使不具备高级编程知识也能顺利完成迁移。 `application`目录则包含了插件的具体实现代码,这些代码与...

    网站规划13企业电子商务网站编程语言.pptx

    【企业电子商务网站编程语言】 网站规划对于任何企业来说都是至关重要的,尤其是对于电子商务网站,选择合适的编程语言将直接影响网站的功能、性能以及用户体验。本讲座主要关注企业电子商务网站中常见的编程语言,...

    通用企业网站系统(.net2.0_div_css_生成html_bbs) v2.0 中英文结合版

    在ASP.NET 2.0中,ASP.NET Web Forms是一个关键组件,允许通过拖放控件和事件驱动编程来构建交互式网页。 在前端设计上,系统强调了使用Div和CSS。Div(Division)是HTML中的一个布局容器元素,通过CSS可以对其进行...

    PHP4.0与MySQL动态网站编程

    8. 安全性:了解常见的Web安全问题,如SQL注入和XSS攻击,以及如何防范这些威胁。 通过深入学习和实践这些内容,你将能够构建出功能丰富的动态网站,并为后续学习更高级的PHP版本和Web开发技术打下坚实的基础。

    wap常见问题问答大全

    "wap常见问题问答大全"这个标题和描述暗示了这是一个关于WAP(无线应用协议)的文档集合,其中包含了用户在使用WAP过程中可能遇到的各种问题及相应的解答。WAP是一种标准协议,允许移动设备通过无线方式访问互联网或...

Global site tag (gtag.js) - Google Analytics