2012sql server 2012 r2R2 安装了GUI模式基本系统设备全感叹号怎么处理。

Windows Sever 2012的安装教程(图文)
最近微软先行放出发布了下一代Windows服务器版本windows server 2012,笔者下载下来测试安装了,相对于windows server 2008,确实有许多细节方面的改进
最近微软先行放出发布了下一代Windows服务器版本windows server 2012,笔者下载下来测试安装了,相对于windows server 2008,确实有许多细节方面的改进。
我是通过vmware workstation 8来安装windows server 2012的,由于安装的时候无法选择2012只好选择windows server 2008 64位版本的。
启动界面,由前一个版本的&Betta鱼&更换为&Windows&
可以看到,名称已经变成Windows Server 2012,除了ENGLISH,而且可以安装成简体中文的版本了,难得啊。
由于是RC版本,可以看到,只有俩个可选的,一个是服务器核心的,另外一个是带图形界面的安装,选择GUI安装。
这里自定义安装了。。
驱动器划分,这些都和2008一样,没有任何变化。
密码必须满足复杂度要求,发现一个有意思的事情,按住眼睛不动,可以查看输入的密码,而且2012里面所有涉及密码的地方,都可以查看。
默认的未登陆锁定状态界面。
看看,这个地方也有个眼睛,可以查看输入的密码,这样方便多了,粗心的人就不会输错密码了。希望win8也是这样。
总算进来了,看一下,服务器管理器和win2008的确不一样。
把鼠标移动到右边,可以跳出开始菜单的选择界面,点击看一下,这个就是以后微软操作系统的开始菜单了。有点悲剧啊,个人觉得还是以前的菜单比较实用一些,微软您老人家还是根据台式电脑和平板区分对待吧。
查看所有应用程序,找起来也比较吃力,微软估计是想解决大家的左手,以后我们就使用鼠标就行了,以后搞不定来个声控的操作系统,期待。。。
再来看一下任务管理器,改进了不少,网卡流量信息,系统服务都加进来了。
右键点击一下服务,可以启动停止服务
这就是所谓的IE 10了。。。。。
角色和功能的部署,改动比较大,windows server 2012是基于云的操作系统,果不出其然,服务部署可以到本地服务器,也可以到远程服务器,并且可以管理虚拟机。并且还增加了服务器群组管理,这样大大方便了。
通过简单的测试,左看右看上看下看,同win8一样,windows server 2012在许多细节都做得非常出色,相信跟以前的版本相比,在虚拟化和云方便会有质的突破,期待正式版的发布。
WinServer2012虚拟化强势
今年4月份微软宣布将开发代号为Windows Server8的操作系统改名为WindowsServer2012,本次升级的Hpyer-V技术已经进行了大幅度的提升,而这些改进中包括对于创建动态虚拟化数据中和云计算环境的更新,这就是一直在说的私有云的创新,这些新的改进对于用户来说,可以提升更好的性能和可用性,也可以帮助用户更好地管理和进行数据的实时迁移的部属方法。
Windows Server2012在虚拟化方面的强势表现将有助于云计算的进一步发展,我们也将看到更多功能的更新和增强,具体在易用性和可管理方面实现了简化操作,这样非常利于用户对于页面的简洁操作,这一功能也将受到用户的广泛关注。针对企业级用户方面System Center2012将与Windows Server2012一起为用户提供云优化的服务。
对于Windows Server2012的全新升级将会带来哪些值得关注的功能,Windows server2012中提供了全新的部署和管理方法,可以管理数百个虚拟机,并且围绕着Power Shell和Metro界面的管理终端Server Manager。在Server Manager中提供了传统的GUI,但后台运行的是Power Shell命令行。命令行可以直接在PowerShell中拷贝、编辑和执行等操作。Power Shell扩展支持了2000多种新命令。Windows Server2012有三种模式,其中一种是纯命令行的ServerCore。
在Server Manager中还提供了追踪系统管理线索功能,该功能可以查看服务器状态和服务器进程以及查看事件记录的窗口操作。另一个新的功能就是拖拽效果,对于大型系统的管理Server Manager能将大量信息都防止在一个单一显示屏上进行拖动或者关联,这样解决了没有多屏显示设备的困扰。 在Server Manager中,另一个针对个人的服务就是搭建个人群组服务了,在Server Manager中可以以服务器和实例的方式进行分组,比如根据地理位置,或者任务和基础设置的部署等进行任何的逻辑分组。
Server Manager提供了故障解决方案
在Server Manager中可以让你体验云端办公的乐趣,Server Manager能够将机器部署为本地虚拟化主机或者直接迁移至云端,这让企业用户的所有操作都置身于云端。更多的人将Windows Server2012也看作是云服务系统,就是因为融合进很多的私有云在里面。
Server Manager提供了更便捷的故障解决方案。即使是针对不同类型的服务器也提供了强大的灵活性。Windows Server2012在安全性方面做到了长足的进步,Server Mangager所提供的报警功能可以在发生安全问题的时候向下拖拽进行处理。Server Manager更加便捷的族群管理机制让服务可以以小组的形式分割开,这类似于服务器中的快速检查和群组控制等操作。最后Server Manager所带来的就是图形上的直观改变,在Server Manager中包含多个独立的管理模块,并且对于角色和服务都是以图形的方式体现出来的。这让用户在操作的时候一目了然,非常清晰。
在同一处查看所有服务器信息
其他功能并没有过多变化
对于Windows Server2012的全新升级提供了全新的部署和管理方法,可以管理数百个虚拟机,并且围绕着PowerShell和Metro界面的管理终端Server Manager。在Server Manager中提供了传统的GUI,但后台运行的是PowerShell命令行。命令行可以直接在Power Shell中拷贝、编辑和执行等操作。Power Shell扩展支持了2000多种新命令。Windows Server2012有三种模式,其中一种是纯命令行的ServerCore。
小结:Windows Server2012在虚拟化方面的强势表现将有助于云计算的进一步发展,发布的Windows Server2012中,我们也看到更多功能的更新和增强,具体在易用性和可管理方面实现了简化操作,这样非常利于用户对于页面的简洁操作,这一功能也将受到用户的广泛关注。针对企业级用户方面System Center2012将与Windows Server2012一起为用户提供云优化的服务。
解析如何保证云中的Windows Server安全
随着云技术和服务器虚拟化在数据中心的变得越来越重要,很多管理员都接到了利用现有Server 2008 R2安装来保证新环境安全的任务。
Windows Server平台有很多功能可以帮助工程师锁定他们的环境并且让这个环境可用于虚拟化或云部署。记住,尽管用户是从不同的位置来访问一个集中的工作负载,但是这个实例仍然处于Windows Server环境中,并且受到Windows环境的潜在控制。
活动目录和组策略对象都是实用的工具,它们可以帮助锁定面向云的环境。
虽然管理员现在看到用到的都是新型终端,但是很多核心安全实践方案仍然是相同的。工程师仍然使用现在可用的现存技术工作来锁定他们的环境。
确保活动目录安全。拥有一个安全的活动目录环境会创造更具活力、能按业务需求增长的云基础设施。在Server 2008 R2里面,活动目录为提供登录认证的企业创建一个安全界线。活动目录创建一个分等级架构,包括活动目录林、林中的域、DNS以及每个域中的组织单元。
计划一次安全DNS服务器部署时,工程师首先应该收集环境的信息。记住,部署Windows Server 2008 R2时,规划、设计和测试一直都非常重要。在规划阶段,工程师收集关键的环境信息,这些信息帮助工程师来确定基础设施内的安全特质。这些信息应该包括内部和外部域的结构和等级,针对这些域名授权的DNS服务器识别,以及网络中用于主机地址解析的DNS客户端需求。
通过这些信息,工程师可以了解使用了哪些功能,从而锁定他们的环境。针对云环境部署安全AD和DNS时还应该考虑以下内容:
与WAN/Cloud/Internet的联系。在数据中心内部,并不是所有服务器都面向网络,也不是所有服务器都提供云服务。这种情况下,如果在互联网上不需要你的网络主机来解析名称,那么消除内部DNS服务器与互联网的所有联系。在这种DNS设计中,你可以使用你网络中完全托管的私有域名空间,内部DNS服务器为根域和一级域名托管区域。这种配置中,DNS服务器不会使用互联网根名称主机,因此要配置根提示来引导它们只指向内部的DNS根。
区域传输相关的工作。DNS是一个非常重要的功能。这也是要确保部署中每个元素都安全的原因。如果不需要就关闭区域传输,通过这种方法,工程师提供了一个更安全的DNS环境。但是如果需要区域传输,它们也只应该出现在特定的IP地址。开启到任意服务器上的区域传输都可能会带来一些安全隐患。旨在开启区域传输的攻击可能会暴露你的DNS,并且允许内部发生的恶意侵入。这也是区域传输相关的工作、锁定和限制是规划过程中一个重要部分的原因。
管理综合AD区域。使用综合目录区域时可用的安全增强功能包括访问控制列表和安全动态更新。你不能使用综合目录区域,除非DNS服务器也是一个域控制器。Windows 2008 Server Core是一个不包含GUI的Windows服务器版本。所有Server Core的管理都通过命令行或通过脚本来执行。
部署组策略对象(GPO)。GPO是一个强大的工具,它帮助管理员锁定服务器、其它机器以及面向云的虚拟机。使用组策略时,管理员可以针对计算机和用户的群组来管理配置,包括的选项针对基于注册表的策略设置、安全设置、软件部署、脚本、文件夹重定向、远程安装服务和IE维护。通过使用组策略,工程师可以部署软件包并保证计算机和用户的安全。当工作师用到策略设置、多个策略间的相互作用及继承选项等因素时,GPO可以快速变复杂。和所有部署一样,必须执行仔细的规划、设计和测试。在用到面向云的Windows服务器时这尤为正确。好的规划工程师能够提供企业需要的标准化功能、安全和管理控制。
Windows Server主控图像控制。有些环境中,基于云的Windows服务器是完全虚拟化的。这些基础设施中的一些可能需要这些图像获得认证且不会被更改,比如医疗。在这种情况中,工程师可以创建一个主控黄金图像快照。然后他们可以克隆这个图像并在测试环境中对这个克隆图像应用补丁和更新。接着他们可以在独立的服务器上测试来观察是否有与更新不兼容的问题。即使是在生产环境中,如果一个补丁失效或者是产生了一个管理缺陷,服务器管理员也可以轻松地回滚到最近工作正常的Windows环境。为了达到认证的目的,主控图像可以安全地存储环境中的某个位置,工程师知道这个位置不会进行变更。
随着Windows Server技术继续改良,更多的工具可以帮助管理员成功地部署并锁定他们的环境。由于每个环境都是独一无二的,必须在开发云活动之前进行基于安全的仔细规划。Windows Server平台适应环境需求的能力也另人印象深刻。但是要真正地利用这些服务器平台提供的功能集,还需要取决Windows管理员对自己环境的理解。
Windows server 8带来更多新功能
2月的最后一天微软推出了万众瞩目的Windows 8消费者预览版本,同时发布的还有Windows Server 8 Beta版本,最新发布的这款针对服务器设计的操作系统Windows Server 8 Beta版本被看做是一款基于云端的操作系统,针对企业和托管服务提供商提供了大量的针对性优化政策,并且Windows Server 8相对于上一个版本新增加的数百项功能,并且新增的很多功能对于在Win环境下的管理员提供了更多支持。Windows Server 8 Beta版的全面提升也标志着微软在虚拟化、网络、存储中的实现突破性升级。
本次的Windows Server 8的重大更新包括在虚拟化和应用托管功能等方面的众多改进。下面我们就结合Windows Server 8开发者预览版的安装来来看看最新版的服务器操作系统有哪些新的功能。
支持中文版的Windows Server 8
在Windows Server 8安装的时候提供了中文,在虚拟化方面,Windows Server 8将允许管理员构建虚拟网络,并且当不同的部门或者客户需要共享同一物理网络资源的时候,可以完全满足不同的部门或者客户共享同一网络,而又会在虚拟网络里是独立存在的。
进行选择语言开始安装
Windows Server 8为用户带来了持续的可用性和高效的管理功能,并且对于成本的有效控制也成为了用户首选的重点,Windows Server 8 能够充分利用商品仓储设施、网络传输能力和服务器基础设施,并在重大企业收购和业务经营过程中实现更高的节能优势。
提供了自定义安装法
提供了三种安装方法,你可以根据自己的要求进行安装,但是都要求你的机器是64位,如果是32位就无法完成安装。
用户选择安装版本
用户进行自定义安装
Windows Server 8提供了自定义安装,Windows Server 8将自动分配空间。不过要想运行这套免费的测试版本,服务器至少需要配置1.4GHz 64位处理器,最低512MB工作内存和32GB硬盘空间。
全新的ARM界面
如果你是第一次登录,请先注册用户名,然后根据用户名和密码进行登录,点击登录之后,呈现在你面前的就是Metro风格的Windows Server 8。当这样全新的页面风格出现在你的面前的时候,不知道你是否能适应由传统的桌面系统过渡到触控界面的转变。
注册用户并进行登录
ARM效果的Windows Server 8
Windows Server 8的ARM界面是否也预示着微软将在服务器操作系统领域全面实现虚拟化的可能性,将所有的数据置于&云端&,Windows Server 8的存储方式将更多的基于云端来进行。
远程控制升级更注重用户体验
点击进入登陆界面之后,就进入了主系统,首先看到的是&远程控制服务器选项&。
远程控制服务器选项
远程控制服务器选项是网络远程管理工具,程序可以远程连接到服务器上,并且可以在本机显示远程服务器的程序运行桌面情况,用户可以在本地对远程服务器进行操控,对它进行启动和重启等操作,并且程序在执行的过程中将会占用较小的CPU资源,并且确保了高效率和高可靠性等诸多优点。
新增灾难恢复和云备份功能
在这款将取代WindowsServer2008的WindowsServer8中,微软公司将采用一系列围绕Hyper-VReplica的全新特性来简化Hyper-V虚拟环境中灾难恢复的能力。这款构建在WindowsServer2008R2基础上的工具目前可以在任何其他的WindowsServer8服务器上存储和配置副本。
Remote Server远程服务器
灾难恢复和云备份功能
副本还可以被存储在本地或者联网的存储系统中,不管是什么品牌的存储系统都可以。增值服务分销商甚至可以选择使用便携式存储设备将副本发送到脱机复制点上来避开初始复制时时间和网络的忙碌。举例来说,在工作时间之外可以立即进行同步或者调试。
虚拟化功能大放异彩
Windows Server 8 通过集成一个兼具高可用性和易于管理特性的多服务器平台,来为您呈现卓越的经济优势。Windows Server 8 将帮助 IT 专业人士对他们的现有基础架构实现&云化&,同时,通过提供高度可用且易于管理的多服务器平台,来更迅速和更高效地满足各种业务需求。
Windows Server 8 ARM界面
基于Role的安装尚无法使用
Windows Server 8 将提供一种适用于多租户的动态基础架构,这种超越虚拟化技术的产品将为您构建 Microsoft 私有云提供完美平台。通过驾驭和超越虚拟化技术,您就能够充分掌控工作负载和安全性,在构建云的过程中充分发挥成本效能,并安全地连接到各种云服务。
Hpyer-V更新功能获得用户好评
在Windows Server 8中采用了新的部署方法来管理虚拟机,并且围绕Server Manager提供了传统的GUI,但后台运行的是命令行的PowerShell。命令可以直接在PowerShell中拷贝、编辑和执行。 PowerShell扩展支持了2000多种新命令。
对虚拟硬盘进行选择
选择一个或多个Role进行安装
微软所推出的Hpyer-V技术再次走入人们的视野,本次升级的Hpyer-V技术已经进行了大幅度的提升,而这些改进中包括对于创建动态虚拟化数据中和云计算环境的更新,这就是一直在说的私有云的创新,这些新的改进对于用户来说,可以提升更好的性能和可用性,也可以帮助用户更好地管理和进行数据的实时迁移的部属方法。
虚拟服务器帮助用户扩展空间
现在对于用户来说,单个服务器无法满足使用需求,或者即使单个服务器能够达到这个要求,但是其成本太高。所以使用虚拟服务器来达到运用需求。
在管理器中添加远程服务器
虚拟服务器
可以在服务器管理器中添加远程服务器,这样就可以方便的远程控制服务器,真正的实现了虚拟化操作。
新增100项功能仍然保留经典功能
对于Windows Server 8的全新升级提供了全新的部署和管理方法,可以管理数百个虚拟机,并且围绕着PowerShell和Metro界面的管理终端ServerManager。在 Server Manager中提供了传统的GUI,但后台运行的是PowerShell命令行。命令行可以直接在PowerShell中拷贝、编辑和执行等操作。 PowerShell扩展支持了2000多种新命令。Windows Server 8有三种模式,其中一种是纯命令行的Server Core。
在同一处查看所有服务器信息
其他功能并没有过多变化
小结:Windows Server 8在虚拟化方面的强势表现将有助于云计算的进一步发展,发布的Windows Server 8中,我们也看到更多功能的更新和增强,具体在易用性和可管理方面实现了简化操作,这样非常利于用户对于页面的简洁操作,这一功能也将受到用户的广泛关注。针对企业级用户方面System Center 2012将与Windows Server 8一起为用户提供云优化的服务。浅谈Php安全和防Sql注入,防止Xss攻击,防盗链,防CSRF
首先,笔者不是web安全的专家,所以这不是web安全方面专家级文章,而是学习笔记、细心总结文章,里面有些是我们phper不易发现或者说不重视的东西。所以笔者写下来方便以后查阅。在大公司肯定有专门的web安全测试员,安全方面不是phper考虑的范围。但是作为一个phper对于安全知识是:“知道有这么一回事,编程时自然有所注意”。
目录:1、php一些安全配置(1)关闭php提示错误功能(2)关闭一些“坏功能”(3)严格配置文件权限。2、严格的数据验证,你的用户不全是“好”人2.1为了确保程序的安全性,健壮性,数据验证应该包括内容。2.2程序员容易漏掉point或者说需要注意的事项3、防注入&& 3.1简单判断是否有注入漏洞以及原理&& 3.2常见的mysql注入语句&&&&&& (1)不用用户名和密码&&&&&& (2)在不输入密码的情况下,利用某用户&&&&&& (3)猜解某用户密码(4)插入数据时提权(5)更新提权和插入提权同理(6)恶意更新和删除(7)union、join等(8)通配符号%、_(9)还有很多猜测表信息的注入sql && 33防注入的一些方法&&&&&& 2.3.1 php可用于防注入的一些函数和注意事项。&&&&&& 2.3.2防注入字符优先级。2.3.3防注入代码&&& (1)参数是数字直接用intval()函数&&& (2)对于非文本参数的过滤(3)文本数据防注入代码。(4)当然还有其他与addslashes、mysql_escape_string结合的代码。4、防止xss攻击4.1Xss攻击过程4.2常见xss攻击地方4.3防XSS方法5、CSRF5.1简单说明CSRF原理5.2防范方法6、防盗链7、防拒CC攻击
1、php一些安全配置
(1)关闭php提示错误功能
在php.ini 中把display_errors改成
display_errors = OFF
或在php文件前加入
error_reporting(0)
1)使用error_reporting(0);失败的例子:
A文件代码:
error_reporting(0);&
echo 444;&
Parse error: parse error, expecting `','' or `';'' in E:\webphp\2.php on line 4
2)使用error_reporting(0);成功的例子:
a文件代码:
error_reporting(0);&
include(&b.php&);&
b文件代码:
echo 444;&
这是很多phper说用error_reporting(0)不起作用。第一个例子A.php里面有致命错误,导致不能执行,不能执行服务器则不知有这个功能,所以一样报错。
第二个例子中a.php成功执行,那么服务器知道有抑制错误功能,所以就算b.php有错误也抑制了。
ps:抑制不了mysql错误。
(2)关闭一些“坏功能”
1)关闭magic quotes功能在php.ini 把magic_quotes_gpc = OFF避免和addslashes等重复转义
2)关闭register_globals = Off
在php.ini 把register_globals = OFF
在register_globals = ON的情况下
地址栏目:http://www.jb51.net?bloger=benwin
//$bloger = $_GET['bloger']&& //因为register_globals = ON 所以这步不用了直接可以用$bloger
这种情况下会导致一些未初始化的变量很容易被修改,这也许是致命的。所以把register_globals = OFF关掉
(3)严格配置文件权限。
为相应文件夹分配权限,比如包含上传图片的文件不能有执行权限,只能读取
2、严格的数据验证,你的用户不全是“好”人。
记得笔者和一个朋友在讨论数据验证的时候,他说了一句话:你不要把你用户个个都想得那么坏!但笔者想说的这个问题不该出现在我们开发情景中,我们要做的是严格验证控制数据流,哪怕10000万用户中有一个是坏用户也足以致命,再说好的用户也有时在数据input框无意输入中文的时,他已经不经意变“坏”了。
2.1为了确保程序的安全性,健壮性,数据验证应该包括
(1)&&&& 关键数据是否存在。如删除数据id是否存在(2)&&&& 数据类型是否正确。如删除数据id是否是整数(3)&&&& 数据长度。如字段是char(10)类型则要strlen判断数据长度(4)&&&& 数据是否有危险字符
数据验证有些人主张是把功能完成后再慢慢去写安全验证,也有些是边开发边写验证。笔者偏向后者,这两种笔者都试过,然后发现后者写的验证相对健壮些,主要原因是刚开发时想到的安全问题比较齐全,等开发完功能再写时有两个问题,一个phper急于完成指标草草完事,二是确实漏掉某些point。2.2程序员容易漏掉point或者说需要注意的事项:
(1)&&&& 进库数据一定要安全验证,笔者在广州某家公司参与一个公司内部系统开发的时候,见过直接把$_POST数据传给类函数classFunctionName($_POST),理由竟然是公司内部使用的,不用那么严格。暂且不说逻辑操作与数据操控耦合高低问题,连判断都没判断的操作是致命的。安全验证必须,没任何理由推脱。(2)&&&& 数据长度问题,如数据库建表字段char(25),大多phper考虑到是否为空、数据类型是否正确,却忽略字符长度,忽略还好更多是懒于再去判断长度。(这个更多出现在新手当中,笔者曾经也有这样的思想)(3)&&&& 以为前端用js判断验证过了,后台不需要判断验证。这也是致命,要知道伪造一个表单就几分钟的事,js判断只是为了减少用户提交次数从而提高用户体验、减少http请求减少服务器压力,在安全情况下不能防“小人”,当然如果合法用户在js验证控制下是完美的,但作为phper我们不能只有js验证而抛弃再一次安全验证。(4)&&&& 缺少对表单某些属性比如select、checkbox、radio、button等的验证,这些属性在web页面上开发者已经设置定其值和值域(白名单值),这些属性值在js验证方面一般不会验证,因为合法用户只有选择权没修改权,然后phper就在后端接受数据处理验证数据的时候不会验证这些数据,这是一个惯性思维,安全问题也就有了,小人一个伪表单。(5)&&&& 表单相应元素name和数据表的字段名一致,如用户表用户名的字段是user_name,然后表单中的用户名输入框也是user_name,这和暴库没什么区别。(6)&&&& 过滤危险字符方面如防注入下面会独立讲解。
3.1简单判断是否有注入漏洞以及原理。
网址:http://www.jb51.net/benwin.php?id=1 运行正常,sql语句如:select& *& from phpben where id = 1
(1) 网址:http://www.jb51.net/benwin.php?id=1'&& sql语句如:select& *& from phpben where id = 1'& 然后运行异常 这能说明benwin.php文件没有对id的值进行“'” 过滤和intval()整形转换,当然想知道有没有对其他字符如“%”,“/*”等都可以用类似的方法穷举测试(很多测试软件使用)(2)网址:http://www.jb51.net/benwin.php?id=1 and 1=1& 则sql语句可能是 select& *& from phpben where id = 1 and 1=1,运行正常且结果和http://www.jb51.net/benwin.php?id=1结果一样,则说明benwin.php可能没有对空格“ ”、和“and”过滤(这里是可能,所以要看下一点)(3)网址:http://www.jb51.net/benwin.php?id=1 and 1=2则sql语句可能是 select& *& from phpben where id = 1 and 1=2 如果运行结果异常说明sql语句中“and 1=2”起作用,所以能3个条件都满足都则很确定的benwin.php存在注入漏洞。
ps:这里用get方法验证,post也可以,只要把值按上面的输入,可以一一验证。
3.2常见的mysql注入语句。
(1)不用用户名和密码
//正常语句&
$sql =&select * from phpben where user_name='admin' and pwd ='123'&;&
//在用户名框输入'or'='or'或 'or 1='1 然后sql如下&
$sql =&select * from phpben where user_name=' 'or'='or'' and pwd ='' &;&
$sql =&select * from phpben where user_name=' 'or 1='1' and pwd ='' &;
这样不用输入密码。话说笔者见到登录框都有尝试的冲动。
(2)在不输入密码的情况下,利用某用户。
//正常语句&
$sql =&select * from phpben where user_name='$username' and pwd ='$pwd'&;&
//利用的用户名是benwin 则用户名框输入benwin'#& 密码有无都可,则$sql变成&
$sql =&select * from phpben where user_name=' benwin'#' and pwd ='$pwd'&;
这是因为mysql中其中的一个注悉是“#”,上面语句中#已经把后面的内容给注悉掉,所以密码可以不输入或任意输入。网上有些人介绍说用“/*”来注悉,笔者想提的是只有开始注悉没结束注悉“*/”时,mysql会报错,也不是说“/**/”不能注悉,而是这里很难添加上“*/”来结束注悉,还有“? ”也是可以注悉mysql 但要注意“?”后至少有一个空格也就是“? ”,当然防注入代码要把三种都考虑进来,值得一提的是很多防注入代码中没把“? ”考虑进防注入范围。
(3)猜解某用户密码
//正常语句&
$sql =&select *
where user_name='$username' and pwd ='$pwd'&;&
//在密码输入框中输入“benwin' and left(pwd,1)='p'#”,则$sql是&
$sql =&select *
where user_name=' benwin' and left(pwd,1)='p'#' and pwd ='$pwd'&;
如果运行正常则密码的密码第一个字符是p,同理猜解剩下字符。
(4)插入数据时提权
//正常语句,等级为1&
$sql = &insert
(`user_name`,`pwd`,`level`) values(‘benwin','iampwd',1) &;&
//通过修改密码字符串把语句变成&
$sql = &insert
(`user_name`,`pwd`,`level`) values(‘benwin','iampwd',5)#',1) &;&
$sql = &insert
(`user_name`,`pwd`,`level`) values(‘benwin','iampwd',5)--& ',1) &;这样就把一个权限为1的用户提权到等级5
(5)更新提权和插入提权同理
//正常语句&
$sql = &update phpben set& `user_name` ='benwin', level=1&;&
//通过输入用户名值最终得到的$sql&
$sql = &update phpben set& `user_name` ='benwin',level=5#', level=1&;&
$sql = &update phpben set& `user_name` ='benwin',level=5--& ', level=1&;
(6)恶意更新和删除
//正常语句&
$sql = &update phpben set `user_name` = ‘benwin' where id =1&;&
//注入后,恶意代码是“1 or id&0”&
$sql = &update phpben set `user_name` = ‘benwin' where id =1 or id&0&;&
//正常语句&
$sql = &update phpben set& `user_name` ='benwin' where id=1&;&
$sql = &update phpben set& `user_name` ='benwin' where id&0#' where id=1&;&
$sql = &update phpben set& `user_name` ='benwin' where id&0-- ' where id=1&;
(7)union、join等
//正常语句&
$sql =&select * from phpben1 where `user_name`='benwin' &;&
$sql =&select * from phpben1 where`user_name`='benwin' uninon select * from phpben2#' &;&
$sql =&select * from phpben1 where`user_name`='benwin' left join……#' &;
(8)通配符号%、_
//正常语句&
$sql =&select * from phpben where `user_name`='benwin' &;&
//注入通配符号%匹配多个字符,而一个_匹配一个字符,如__则匹配两个字符&
$sql =&select * from phpben where `user_name` like '%b' &;&
$sql =&select * from phpben where `user_name` like '_b_' &;
这样只要有一个用户名字是b开头的都能正常运行,“ _b_”是匹配三个字符,且这三个字符中间一个字符时b。这也是为什么有关addslashes()函数介绍时提示注意没有转义%和_(其实这个是很多phper不知问什么要过滤%和_下划线,只是一味的跟着网上代码走)
(9)还有很多猜测表信息的注入sql
//正常语句&
$sql =&select * from phpben1 where`user_name`='benwin'&;&
//猜表名,运行正常则说明存在phpben2表&
$sql =&select * from phpben1 where`user_name`='benwin' and (select count(*) from phpben2 )&0#' &;&
//猜表字段,运行正常则说明phpben2表中有字段colum1&
$sql =&select * from phpben1 where`user_name`='benwin' and (select count(colum1) from phpben2 )&0#'&;&
//猜字段值&
$sql =&select * from phpben1 where`user_name`='benwin' and left(pwd,1)='p'#''&;
当然还有很多,笔者也没研究到专业人士那种水平,这里提出这些都是比较常见的,也是phper应该知道并掌握的,而不是一味的在网上复制粘贴一些防注入代码,知然而不解其然。
下面一些防注入方法回看可能更容易理解。
3.3防注入的一些方法
3.3.1 php可用于防注入的一些函数和注意事项。
(1)addslashes 和stripslashes。
Addslashes给这些 “'”、“””、“\”,“NULL” 添加斜杆“\'”、“\””、“\\”,“\NULL”, stripslashes则相反,这里要注意的是php.ini是否开启了magic_quotes_gpc=ON,开启若使用addslashes会出现重复。所以使用的时候要先get_magic_quotes_gpc()检查
一般代码类似:
if(!get_magic_quotes_gpc())&
&&&&&&&& $abc = addslashes($abc);&
其实这个稍微学习php一下的人都知道了,只不过笔者想系统点介绍(前面都说不是专家级文章),所以也顺便写上了。addslashes
(2)mysql_escape_string()和mysql_ real _escape_string()
mysql_real_escape_string 必须在(PHP 4 &= 4.3.0, PHP 5)的情况下才能使用。否则只能用 mysql_escape_string
if (PHP_VERSION &= '4.3')&
$string& =& mysql_real_escape_string($string);&
$string& =& mysql_escape_string($string );&
mysql_escape_string()和mysql_ real _escape_string()却别在于后者会判断当前数据库连接字符集,换句话说在没有连接数据库的前提下会出现类似错误:
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in E:\webphp\test.php on line 11
(3)字符代替函数和匹配函数str_replace() 、perg_replace()这些函数之所以也在这里提是因为这些函数可以用于过滤或替代一些敏感、致命的字符。
3.3.2防注入字符优先级。
防注入则要先知道有哪些注入字符或关键字,常见的mysql注入字符有字符界定符号如“'”、“””;逻辑关键字如“and”、“or”;mysql注悉字符如“#”,“? ”,“/**/”;mysql通配符“%”,“_”;mysql关键字“select|insert|update|delete|*|union|join|into|load_file|outfile”
(1)对于一些有规定格式的参数来说,防注入优先级最高的是空格” ”。
如一些银行卡号,身份证号,邮箱,电话号码,,生日,邮政编码等这些有自己规定的格式且格式规定不能有空格符号的参数,在过滤的时候一般最先过滤掉空格(包括一些空格“变种”),因为其他字符界定符号,逻辑关键字,mysql注悉,注意下图可以看出重要的是“'”,“ ”
ps:空格字符的变种有:“%20”,“\n”,“\r”,“\r\n”,“\n\r”,“chr(“32″)” 这也是为什么mysql_escape_string()和mysql_real_escape_string() 两个函数转义“\n”,“\r”。其实很多phper只知道转义\n,\r而不知原因,在mysql解析\n,\r时把它们当成空格处理,笔者测试验证过,这里就不贴代码了。
(2)“and”,“or”,“\”,“#”,“? ”
逻辑关键可以组合很多注入代码;mysql注悉则把固有sql代码后面的字符全部给注悉掉从而让注入后的sql语句能正常运行;“\”也是能组合很多注入字符\x00,\x1a。
ps:sql解析“#”,“? ”是大多数mysql防注入代码没有考虑到的,也是很多phper忽略。还有因为一些phper给参数赋值的时候会有用“-”来隔开,所以笔者建议不要这样写参数,当然也可以再过滤参数的时候“? ”(注意有空格的,没空格不解析为注悉)当一个整体过滤而不是过滤“-” ,这样就避免过多过滤参数。
(3)“null”,“%”,“_”
这几个不能独立,都不要在特定情况下,比如通配字符“%,_”都要在mysql like子句的前提下。所以“%”,“_”的过滤一般在搜索相关才过滤,不能把它们纳入通常过滤队列,因为有些如邮箱就可以有”_”字符
(4)关键字“select|insert|update|delete|*|union|join|into|load_file|outfile”
也许你会问怎么这些重要关键字却优先级这么低。笔者想说的是因为这些关键字在没有“'”,“””,“ ”,“and”,“or”等情况下购不成伤害。换句话说这些关键字不够“独立”,“依赖性”特别大。当然优先级低,不代表不要过滤。
3.3.3防注入代码。
(1)参数是数字直接用intval()函数
注意:现在很多网上流行的防注入代码都只是只是用addslashes()、mysql_escape_string()、mysql_real_escape_string()或三者任意组合过滤,但phper以为过滤了,一不小心一样有漏洞,那就是在参数为数字的时候:
$id = addslashes($_POST['id']); //正确是$id = intval($_POST['id']);&
$sql =& select *
where id =$id&;&
$sql =& select *
where id =1 or 1=1&;
对比容易发现,post过来的数据通过addslashes过滤后的确很多注入已经不起作用,但是$id并没有intval,导致漏洞的存在,这是个小细节,不小心则导致漏洞。
(2)对于非文本参数的过滤
文本参数是指标题、留言、内容等可能有“'”,“'”等内容,过滤时不可能全部转义或代替。
但非文本数据可以。
function _str_replace($str )&
&&&& $str = str_replace(& &,&&,$str);&
&&&& $str = str_replace(&\n&,&&,$str);&
&&&& $str = str_replace(&\r&,&&,$str);&
&&&& $str = str_replace(&'&,&&,$str);&
&&&& $str = str_replace('&',&&,$str);&
&&&& $str = str_replace(&or&,&&,$str);&
&&&& $str = str_replace(&and&,&&,$str);&
&&&& $str = str_replace(&#&,&&,$str);&
&&&& $str = str_replace(&\\&,&&,$str);&
&&&& $str = str_replace(&-- &,&&,$str);&
&&&& $str = str_replace(&null&,&&,$str);&
&&&& $str = str_replace(&%&,&&,$str);&
&&&& //$str = str_replace(&_&,&&,$str);&
&&&& $str = str_replace(&&&,&&,$str);&
&&&& $str = str_replace(&&&,&&,$str);&
&&&& $str = str_replace(&=&,&&,$str);&
&&&& $str = str_replace(&char&,&&,$str);&
&&&& $str = str_replace(&declare&,&&,$str);&
&&&& $str = str_replace(&select&,&&,$str);&
&&&& $str = str_replace(&create&,&&,$str);&
&&&& $str = str_replace(&delete&,&&,$str);&
&&&& $str = str_replace(&insert&,&&,$str);&
&&&& $str = str_replace(&execute&,&&,$str);&
&&&& $str = str_replace(&update&,&&,$str);&
&&&& $str = str_replace(&count&,&&,$str);&
&&&& return $&
ps:还有一些从列表页操作过来的一般href是”phpben.php?action=delete&id=1”,这时候就注意啦,_str_replace($_GET['action'])会把参数过滤掉,笔者一般不用敏感关键作为参数,比如delete会写成del,update写成edite,只要不影响可读性即可;
还有上面代码过滤下划线的笔者注悉掉了,因为有些参数可以使用下划线,自己权衡怎么过滤;
有些代码把关键字当重点过滤对象,其实关键字的str_replace很容易“蒙过关”,str_replace(“ininsertsert”)过滤后的字符还是insert,所以关键的是其他字符而不是mysql关键字。
(3)文本数据防注入代码。
文本参数是指标题、留言、内容等这些数据不可能也用str_replace()过滤掉,这样就导致数据的完整性,这是很不可取的。
function no_inject($str)&
&&&&&&&& if(is_array($str))&
&&&&&&&& {&
&&&&&&&&&&&&&&&&&& foreach($str as $key =&$val)&
&&&&&&&&&&&&&&&&&& {&
&&&&&&&&&&&&&&&&&&&&&&&&&& $str[$key]=no_inject($val);&
&&&&&&&&&&&&&&&&&& }&
&&&&&&&& }else&
&&&&&&&& {&
&&&&&&&&&&&&&&&&&& $str = str_replace(& &,& &,$str);&
&&&&&&&&&&&&&&&&&& $str = str_replace(&\\&,&\&,$str);&
&&&&&&&&&&&&&&&&&& $str = str_replace(&'&,&'&,$str);&
&&&&&&&&&&&&&&&&&& $str = str_replace('&',&&&,$str);&
&&&&&&&&&&&&&&&&&& $str = str_replace(&or&,&or&,$str);&
&&&&&&&&&&&&&&&&&& $str = str_replace(&and&,&and&,$str);&
&&&&&&&&&&&&&&&&&& $str = str_replace(&#&,&#&,$str);&
&&&&&&&&&&&&&&&&&& $str = str_replace(&-- &,&-- &,$str);&
&&&&&&&&&&&&&&&&&& $str = str_replace(&null&,&null&,$str);&
&&&&&&&&&&&&&&&&&& $str = str_replace(&%&,&%&,$str);&
&&&&&&&&&&&&&&&&&& //$str = str_replace(&_&,&&,$str);&
&&&&&&&&&&&&&&&&&& $str = str_replace(&&&,&&&,$str);&
&&&&&&&&&&&&&&&&&& $str = str_replace(&&&,&&&,$str);&
&&&&&&&&&&&&&&&&&& $str = str_replace(&=&,&=&,$str);&
&&&&&&&&&&&&&&&&&& $str = str_replace(&char&,&char&,$str);&&&
&&&&&&&&&&&&&&&&&& $str = str_replace(&declare&,&declare&,$str);&
&&&&&&&&&&&&&&&&&& $str = str_replace(&select&,&select&,$str);&
&&&&&&&&&&&&&&&&& $str = str_replace(&create&,&create&,$str);&
&&&&&&&&&&&&&&&&& $str = str_replace(&delete&,&delete&,$str);&
&&&&&&&&&&&&&&&&& $str = str_replace(&insert&,&insert&,$str);&
&&&&&&&&&&&&&&&& $str = str_replace(&execute&,&execute&,$str);&
&&&&&&&&&&&&&&&& $str = str_replace(&update&,&update&,$str);&
&&&&&&&&&&&&&&&& $str = str_replace(&count&,&count&,$str);&
&&&&&&&& }&
&&& return $&
(4)当然还有其他与addslashes、mysql_escape_string结合的代码。
防注入的代码其实来来去去都是那些组合,然后根据自己程序代码变通,笔者这些代码也是没考虑全的,不如cookes、session、request都没全过滤。重要是知道其中原理,为什么过滤这些字符,字符有什么危害。
4、防止xss攻击
XSS:cross site script 跨站脚本,为什么不叫css,为了不和div+css混淆。
4.1Xss攻击过程:
(1)发现A站有xss漏洞。
(2)注入xss漏洞代码。可以js代码,木马,脚本文件等等,这里假如A站的benwin.php这个文件有漏洞。
(3)通过一些方法欺骗A站相关人员运行benwin.php,其中利用相关人员一些会员信息如cookies,权限等。
相关人员:
管理员(如贴吧版主),管理员一般有一定权限。目的是借用管理员的权限或进行提权,添或加管理员,或添加后门,或上传木马,或进一步渗透等相关操作。
A站会员:会员运行A站的benwin.php。目的一般是偷取会员在A站的信息资料。
1)&&&&&& 在A站发诱骗相关人到benwin.php的信息,比如网址,这种是本地诱骗
2)&&&&&& 在其他网站发诱骗信息或者发邮件等等信息。
一般通过伪装网址骗取A站相关人员点击进benwin.php
(4)第三步一般已经是一次xss攻击,如果要更进一步攻击,那不断重复执行(2)、(3)步以达到目的。
简单例说xss攻击
代码:benwin.php文件
&title&简单xss攻击例子&/title&&/head&&
&meta http-equiv=&Content-Type& content=&text/ charset=utf-8&&&
&form action=&?user_name=&?php echo $user_ ?&&&&
&input type=&submit& value=&提交& &&
当用户名$user_name的值是“benwin” onSubmit=”alert(‘这是xss攻击的例子');” class= “”(这里)
&form action=&?user_name=benwin& onSubmit=&alert('这是xss攻击的例子');& class= && &&
&input type=&submit& value=&提交& &&
当提交表单的时候就会弹出提示框。
(1)&&&& 很明显$user_name在保存进数据库的时候没有过滤xss字符(和防注入很像,这里举例说明)==&发现漏洞
(2)&&&& 构造xss代码:benwin” onSubmit=”alert(‘这是xss攻击的例子');” class= “” 传入数据库
(3)&&&& 骗相关人员进来点击“提交”按钮
4.2常见xss攻击地方
&script language=&javascript&&&
var testname =& &?php echo $?&&;&
$testname的值只要符合js闭合关系:“”;alert(“test xss “);”(以下同理)
(2)form表单里面
&input type=&text& name=&##& value=&&?php echo $ ?&& /&
&a href=&benwin.php?id= &?php echo $ ?&&&a标签可以隐藏xss攻击&/a&
(4)用得很多的img标签
&img src=&&?php echo $picP ?&& /&
甚至一些文本中插入整个img标签并且用width、 height、css等隐藏的很隐蔽
总之,有输出数据的地方,更准确的说是有输出用户提交的数据的地方,都有可能是XSS攻击的地方。
4.3防XSS方法
防xss方法其实和防注入很相似,都是一些过滤、代替、实体化等方法
(1)过滤或移除特殊的Html标签。
例如:& 、&、&,、& '、”、&script&、 &iframe& 、&,、&、&
(2)过滤触发JavaScript 事件的标签。例如 onload、onclick、onfocus、onblur、onmouseover等等。
(3)php一些相关函数,strip_tags()、htmlspecialchars()、htmlentities()等函数可以起作用
CSRF跨站请求伪造cross site request forgery。
5.1简单说明CSRF原理
(1)A登录Site1(如现在网民常上的淘宝、微博、QQ等),产生一些信息,session、cookies等等,且一直保持没退出。
(2)A再登录Site2(如一些成人网等,至于怎么跑到Site2,多数是Site通过些手段,邮件欺骗等),打开site2的浏览器和打开site1的一样,否则无效
(3)Site2站中伪造了Site1的http请求(如修改密码,买东西,转账等),Site1的服务器误以为A在site1的正常操作(因为同浏览器且A还没登出),然后就运行了请求,那么csrf已成功操作。
csrf和xss很相似。xss也能伪造请求,csrf也能制造脚本。
伪造的请求可以很多方面,发邮件、改密码、返回用户信息、交易等等,所以相对与xss攻击来说csrf危害更严重。
5.2防范方法。
(1)严密操控执行入口
执行一些敏感操作比如改密码这些操作前判断请求来源,只有本站服务器发的请求才可以执行。判断方法可以判断ip来源。非本站服务器ip不会执行。
(2)本站有外链的话做些必要操作
一般site2的hacker会在site1(比如论坛里)里发欺骗连接,因为在site1诱骗的相关人员一般都登录site1了,满足csrf气体条件之一。
如当你点击QQ邮件里面的长外链时候,回跳转到一个页面提示“有风险”之类,这样不仅可以减低跳出率,一些不懂的人看到这样的提示,若不是非必要而是处于好奇点击的连接一般不会继续点击访问;还有是QQ邮件正文里的图片在加载内容时是不加载图片的,要点击“显示图片”按钮才显示图片,这里一个原因之一就是避免攻击。
当然对于用户体验来说这是不可取的,可以优化的是判断到一些网址(如QQ本身网址)是安全直接可以显示(不用提示),而可疑的才提示或禁止。
(3)防止csrf也可以用防xss的方法。
盗链问题增加服务器的负担。盗链就是盗链网站盗取被盗链网站资源来实现一些功能。盗链方面主要是图片、视频、以及其他资源下载文件。
方法:判断ip,只有本站服务器才能使用站点资源,否则不能使用。
(1)在Apache htaccess添加
RewriteEngine on&&
RewriteCond %{HTTP_REFERER} !^$ [NC]&
RewriteCond %{HTTP_REFERER} ! [NC]&
RewriteCond %{HTTP_REFERER} ! [NC]&&
RewriteCond %{HTTP_REFERER} ! [NC]&&
RewriteCond %{HTTP_REFERER} ! [NC]&
RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]&
RewriteRule ^(.*)$ http:\/\/\/image\/$1 [L]
这样,凡是不是
域名请求的都返回replace.gif代替返回
7、防CC攻击
CC攻击:是利用不断对网站发送连接请求致使形成拒绝服务的目的。
详细百度百科:/view/662394.htm
session_start();&
$ll_nowtime = $&
if (session_is_registered('ll_lasttime')){&
$ll_lasttime = $_SESSION['ll_lasttime'];&
$ll_times = $_SESSION['ll_times'] + 1;&
$_SESSION['ll_times'] = $ll_&
$ll_lasttime = $ll_&
$ll_times = 1;&
$_SESSION['ll_times'] = $ll_&
$_SESSION['ll_lasttime'] = $ll_&
if (($ll_nowtime - $ll_lasttime)&3){&
if ($ll_times&=5){&
header(sprintf(&Location: %s&,'http://127.0.0.1'));&
$ll_times = 0;&
$_SESSION['ll_lasttime'] = $ll_&
$_SESSION['ll_times'] = $ll_&
例如: SQL注入攻击 XSS攻击
任意执行代码 文件包含以及CSRF. }
关于SQL攻击有很多文章还有各种防注入脚本,但是都不能解决SQL注入的根本问题 见代码:
&?php mysql_connect(&localhost&,&root&,&123456&)or die(&q
在使用电脑中难免会遇到一些小问题,而小问题如果你知道解决方法的话,那么基本上几分钟就能解决了,而如果你不知道可以要想很久或者百度很久才能找到解决方法。 一、截图花屏 这个问题主要是由于显卡驱动程序和你的显卡不是很配的情况下才会发生,我们只需要重新换个显卡驱动基本上就没问题了。 二、盘符错乱 盘符错乱从Win95时代便经常发生,这一次Windows 7更严重了。如果你是从光盘安装的Windows 7
1、无效的月份问题 最近在往数据库中插入时间时,Oracle报“无效的月份问题”,具体SQL如下:
INSERT INTO TS_COUNT (
ID,CNAME, STARTTIME, ENDTIME,VALUE
) VALUES (
CodeIgniter框架自身提供了一些安全设置如针对XSS和CSRF攻击的防范,针对SQL注入攻击的防范等。 就配置文件而言: 在application/config/config.php中
$config['encryption_key'] = '';//这个一定要设置 以加密自己的cookie等 $config['cookie_secure'] = TRUE;//设置为TRUE /*
作为PHP程序员,特别是新手,对于互联网的险恶总是知道的太少,对于外部的入侵有很多时候是素手无策的,他们根本不知道黑客是如何入侵的、提交入侵、上传漏洞、sql 注入、跨脚本攻击等等。作为最基本的防范你需要注意你的外部提交,做好第一面安全机制处理防火墙。
  规则 1:绝不要信任外部数据或输入
  关于Web应用程序安全性,必须认识到的第一件事是不应该信任外部数据。外部数据(outside d
MVC 代码书写:控制器代码书写:
&?php class IndexController extends Zend_Controller_Action { function init() { $this-&registry = Zend_Registry::getInstance(); $this-&view = $this-&registry['v
正在看的ORACLE教程是:Microsoft SQL Server 安全问题。 Microsoft SQL Server 7.0安全问题
Microsoft Corporation
【「Microsoft SQL Server 7.0」以下简称「SQL Server 7.0」】
SQL Server 7.0 有哪几种安全模式?
两种:SQL Server和Windows NT(混合)及W
PHP代码安全和XSS,SQL注入等对于各类网站的安全非常中用,尤其是UGC(User Generated Content)网站,论坛和电子商务网站,常常是XSS和SQL注入的重灾区。这里简单介绍一些基本编程要点, 相对系统安全来说,php安全防范更多要求编程人员对用户输入的各种参数能更细心.php编译过程中的安全建议安装Suhosin补丁,必装安全补丁php.ini安全设置
以下所说的struts-config.xml和ApplicationResources.properties等文件名是缺省时使用的,如果你使用了多模块,或指定了不同的资源文件名称,这些名字要做相应的修改。 1、“No bean found under attribute key XXX”在struts-config.xml里定义了一个ActionForm,但type属性指定的类不存在,type属性
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from
使用windows7系统的用户肯定对其强大的功能和绚丽的界面所吸引,但是在系统出现问题时有时候却往往束手无措。下文介绍了用户使用windows7系统的常见的问题解决方法,具体内容如下所述。    Windows7的虚拟机如何共享主机的文件   问:我的电脑是Windows7旗舰版,用的是MicrosoftVirtualPC这款虚拟机软件,请问如何让虚拟机共享主机的文件呢?   答:启动虚拟机之后依
前言 在前后端分离的开发模式中,从开发的角色和职能上来讲,一个最明显的变化就是:以往传统中,只负责浏览器环境中开发的前端同学,需要涉猎到服务端层面,编写服务端代码。而摆在面前的一个基础性问题就是如何保障Web安全? 本文就在前后端分离模式的架构下,针对前端在Web开发中,所遇到的安全问题以及应对措施和注意事项,并提出解决方案。 跨站脚本攻击(XSS)的防御 问题及解决思路 跨站脚本攻击(XSS,C
mysql_real_escape_string()
所以得SQL语句如果有类似这样的写法:&select * from cdr where src =&.$userId; 都要改成 $userId=mysql_real_escape_string($userId)
所有有打印的语句如echo,print等 在打印前都要使用htmlentities() 进行过滤,这样可以防
在电脑使用过程中,我们经常会遇到死机的情况,而死机伴随者电脑操作系统,从一开始的Windows图形化操作系统开始,就一直有这样的情况,一直到Windows 7乃至泄漏版本的Windows 8一直存在。   为什么一直解决不了?那要从Windows的工作方式说起。为什么要强调Windows操作系统呢,因为除了Windows操作系统,还有另外的几大操作系统,最有名的有UNIX.UNIX的操作界面侧重于
php的内置函数exec,system都可以调用系统命令(shell命令),当然还有passthru,escapeshellcmd等函数。
在很多时候利用php的exec,system等函数调用系统命令可以帮助我们更好更快的完成工作。比如前二天笔者在批量处理.rar文件时exec就帮我了大忙了。
今天整理一下常用的调用系统函数发出来和大家分享经验。
注意:要想使用这二个函数php.ini中的
本文实例讲述了php中常见的sql攻击正则表达式。分享给大家供大家参考。具体分析如下: 我们都已经知道,在MYSQL 5+中 information_schema库中存储了所有的 库名,表明以及字段名信息。故攻击方式如下: 1. 判断第一个表名的第一个字符是否是a-z中的字符,其中blind_sqli是假设已知的库名。 注:正则表达式中 ^[a-z] 表示字符串中开始字符是在 a-z范围内
在之前的一段时间里,我将 Win8 中比较突出的特点撰写成了几篇文章。但还有一些热点的小问题,也是很多用户曾问到或关注的,又不太适合写成一篇篇独立的文章,于是在这里,我将以问答的形式将其汇总成文,希望能够帮到使用 Win8 中存有这些疑问的你 1. 输入法该如何切换? Windows 8 中引入了语言的概念,在同一种语言下可以添加多种该语言的输入法。语言间的切换快捷键是 Win(徽标键
论坛中也经常有从事.net开发的新手朋友问一些asp.net开发过程中与web标准之间的冲突问题,其实说到底就是客户端代码生成的问题。更高深的开发层面的东西我也说不出来,从页面前端的角度和大家分享一下建议: 少用asp.net中的服务器端控件 在Visual Studio中,有一系列强大的控件,让我们的刚开始学习.net开发人员爱不释手。但vs中的这些控件,大多都是基于winForm的那种模式搬来
PHP通过提取魔术引号产生的“\”字符会带来一定的安全问题,例如下面这段代码片段:
// foo.php?xigr='ryat function daddslashes($string, $force = 0) { !defined('MAGIC_QUOTES_GPC') && define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc())
做web开发,我们经常会做代码走查,很多时候,我们都会抽查一些核心功能,或者常会出现漏洞的逻辑。随着技术团队的壮大,组员技术日益成熟。 常见傻瓜型SQL注入漏洞、以及XSS漏洞。会越来越少,但是我们也会发现一些新兴的隐蔽性漏洞偶尔会出现。这些漏洞更多来自开发人员,对一个函数、常见模块功能设计不足,遗留下的问题。以前我们能够完成一些功能模块,现在要求是要安全正确方法完成模块才行。 接下来,我会分享一
一个优秀的PHP程序员除了要能顺利的编写代码,还需要具备使程序处于安全环境下的能力。今天我们要向大家讲解的是有关PHP防范SQL注入的相关方法。 说到网站安全就不得不提到SQL注入(SQL Injection),如果你用过ASP,对SQL注入一定有比较深的理解,PHP的安全性相对较高,这是因为MYSQL4以下的版本不支持子语句,而且当php.ini里的 magic_quotes_gpc 为On 时
新手常见问题,此贴是早些时候我发的,在3.1正式版中.有些问题已得到修正,不过仍可作为修改或学习参考 请大家花点耐心看完这个吧,这些问题很多人都有碰到.何必要不停的发贴子问呢? 另外,看完这个请去你自己的后台看完模板标记参考!!特别是arclist这个标记的参数说明!! 多思考一下问题,多试验一下标记,,学到就是自己的,学不到,谁也帮不到你!! 补充一点..很多标记都可以参考系统默认的模板和模板区
MySQL死锁问题是很多程序员在项目开发中常遇到的问题,现就MySQL死锁及解决方法详解如下: 1、MySQL常用存储引擎的锁机制 MyISAM和MEMORY采用表级锁(table-level locking) BDB采用页面锁(page-level locking)或表级锁,默认为页面锁 InnoDB支持行级锁(row-level locking)和表级锁,默认为行级锁 2、各种锁特点 表级锁:
RapidMiner(前身是YALE)是一个十分流行的开源数据挖掘软件,它不仅提供了一个GUI的数据处理和分析环境,还提供了Java API以便将它的能力嵌入其他应用程序。本文记录了基于RapidMiner开发数据分析应用程序时遇到的一些问题和解决方法。 BTW,选择RapidMiner而非WEKA的主要原因有两个:1、RapidMiner对Java开发更方便 2、RapidMiner同时提供fr
死机是指我们在使用win7旗舰版系统的过程中出现的死机情况,运行时出现死机通常是因为应用程序与操作系统之间存在冲突或一些应用程序本身就有bug产生的。运行时死机会给我们带来诸多的不便,今天跟大家介绍两种常见的死机现象和解决方法。
开机自检时死机
因为是在开机自检的时候发生了死机,在主板能通电自检时死机,重启,故障依然。 那么就很有可能是内存、主板等硬件有故障。
这时需要对板卡、
黄色感叹号(有冲突):--这是有冲突了,冲突就是说你对某个文件进行了修改,别人也对这个文件进行了修改,别人抢在你提交之前先提交了,这时你再提交就会被提示发生冲突,而不允许你提交,防止你的提交覆盖了别人的修改。要解决冲突,如果你确认你的修改是无效的,则用TSVN还原你的修改就行了;如果认为你的修改是正确的,别人的提交是无效的,那么用TSVN先标记为“解决冲突”,然后就可以提交了;如果你认为你的修改和
解决AJAX中文乱码常用的两种方法 1. 在客户端进行encodeURI(utf-8也可以不做,默认),在服务器端将iso-8859-1编码转为utf-8编码 2.在客户端进行两次encodeURI,在服务器端进行一次转换。 第2种方法能解决问题的原因: 进行两次转换后,在第一次getparameter方法中进行第一次解码,因为解出来的是英文(第一次encode之后的结果),所以不会出问题;第二次
正在看的ORACLE教程是:Oracle捕获问题SQL解决CPU过渡消耗。本文通过实际业务系统中调整的一个案例,试图给出一个常见CPU消耗问题的一个诊断方法.大多数情况下,系统的性能问题都是由不良SQL代码引起的,那么作为DBA,怎样发现和解决这些SQL问题就显得尤为重要.
  本案例平台为UNIX,所以不可避免的应用了一些Unix下常用的工具.如vmstat,top等.
如果用户输入的是直接插入到一个SQL语句中的查询,应用程序会很容易受到SQL注入,例如下面的例子:
$unsafe_variable = $_POST['user_input']; mysql_query(&INSERT INTO table (column) VALUES ('& . $unsafe_variable . &')&);
   问题1. 软件乱码多  这个问题恐怕是最令新手们头疼了,毕竟乱码不比英文,甭管你用什么翻译软件,想要弄清里面的内容几乎完全没有可能。那么遇到此类问题,我们到底该如何解决呢?   很简单,首先进入Control Panel→All Control Panel Items→Region,将其中的“Location”和“Aministrative→Current Language for non-
另外,目前闹的轰轰烈烈的SQL Injection也是在PHP上有很多利用方式,所以要保证安全,PHP代码编写是一方面,PHP的配置更是非常关键。 我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行php能够更安全。整个PHP中的安全设置主要是为了防止phpshell和SQL Inj
&script type=&text/javascript&& //验证一般域名校验 function checkNetURL(){ var netURL = document.getElementById(&netURL&); //验证一般的域名 比如说
var regStr=&^([a-z
现在,光驱在我们使用电脑中扮演了非常重要的角色,看电影,听音乐,玩游戏。光驱早已经成为电脑的必备设备,作为机器就免不了的有这样或者那样的故障了,有时会遇到机子装好后光驱的盘符却没有了,装系统,换数据线,查CMOS设置,最后费尽了办法才终于把它找回来。   在Windows下快速运行光驱能够为我们的工作带来不少便利。本文将告诉大家在Windows下光驱使用故障的一些原因及实用小技巧,供大
近日微软正式放出了Win8.1更新和下载。凡Win8用户均可通过应用商店升级到Win8.1系统。联想Yoga13可以完美免费升级到Win8.1。下面给大家带来联想yoga升级Win8.1教程和Win8.1驱动下载,以及升级后的几个常见问题的解决方法。
一、Yoga13升级Win8.1教程 进入开始界面,点击应用商店。在应用商店最醒目的位置会看到Windows8.1的更新提示,点击进行下载即可。整
随着时代的发展,苹果mac以它美观的外表以及系统的稳定抓住越来越多用户的心。   Mac是非常可靠稳定的电脑,但这并不意味着它们就不会出错,不会坏,不会犯傻。我们总结出了一些Mac的“啊哦”的镜头,并告诉你如何对付它们并防止再次发生。   没有电脑是永远不会出问题的。即使是Mac也有犯脾气的时候,突然的不好好工作了,从一个乖宝宝变成了一个大魔头。   如果说,PC有时候很固执任性的话,那么Mac就
微软7月1日凌晨开始通过Windows Update推送Vista SP2的更新。到目前为止,绝大多数的用户都已经成功升级了SP2。但依然还有部分用户因为这样那样的问题没能成功升级,或升级后存在部分问题,现整理一些常见问题和可能的解决方案如下:     系统相关问题:  
  1. 检测不到更新     首先请确认Windows Update上检测到的更新都已经成功安装了。若没有,请先安装检测到
首先这里声明一下,关于我测试浏览器的版本是chrome15.0.874.121 Firefox 8.01 IE9 IETester 下面的代码关于声明 1:获得滚动条的情况
function getScroll(){
var t, l, w,
如果你不知道原因,不要过于担心,请研究CSS规则并查看这篇文章: 使用CSS来修正一切: 20 +常见错误和修复。 如果这些也无效,您可以通过下面列出的12个javascript解决方案修复它,这样您的网页看起来就能跨越所有浏览器了! 在本文中,我们会揭开你在开发web应用是可能会遇到的12个最常见的CSS问题的javascript解决方案。
1. 自动匹配高度
自从我们抛弃了基于Table的
关于windows更新常见问题:
   1.补丁获得的方法有哪些?
   方法一:在Windows Update目录站下载
  step1:单击“开始→Windows Update”或访问/打开微软的官方更新站点,在页面左边单击“个性化 Windows Update”链接,在打开的页面中选中“在相关主题下显示到 Window
SQL注入的重点就是构造SQL语句,只有灵活的运用SQL 语句才能构造出牛比的注入字符串。学完之后写了点笔记,已备随时使用。希望你在看下面内容时先了 解SQL的基本原理。笔记中的代码来自网络。 ===基础部分=== 本表查询: http://127.0.0.1/injection/user.php?username=angel' and LENGTH(password)='6 http://127

我要回帖

更多关于 win2012 server r2 的文章

 

随机推荐