Author: JackSun

7

web常见攻击一——暴力破解(Brute Force)

本人也是php新手,也许写的有错,望大神指出。 所谓的暴力破解攻击就是攻击者无限次尝试用户名和密码,试图登录网站。 如果攻击者无限次的尝试,肯定会把密码尝试出来,所以我们只能把代码写好,尽可能防止这种情况的发生。另外建议朋友们把密码设的复杂一些,这样就会给攻击者增加破解难度。 1、下面是安全性最低的代码,根本没有对用户输入做任何处理,直接操作数据库。这样是非常危险的,很容易被攻击。 2、下面中等安全的代码,可以看到笔者用mysql_real_escape_string()函数处理用户信息,这样可以有效防止用户输入非法sql语句,可是处理不了其他的非法字符(如\).mysql_real_escape_string()使用 3、下面是安全性比较高的代码,可以看到笔者先用stripslashes()函数过滤用户输入,然后再用mysql_real_escape_string()对用户输入进行sql语句过滤。stripslashes()的使用

(转)PHP stripslashes() 函数的使用 2

(转)PHP stripslashes() 函数的使用

PHP stripslashes() 函数 PHP String 函数 定义和用法 stripslashes() 函数删除由 addslashes() 函数添加的反斜杠。 语法 stripslashes(string) 参数 描述 string 必需。规定要检查的字符串。 提示和注释 注释:该函数用于清理从数据库或 HTML 表单中取回的数据。 例子 输出: Who’s John Adams? 广告

(转)php防sql攻击—— mysql_real_escape_string 的使用 0

(转)php防sql攻击—— mysql_real_escape_string 的使用

定义和用法 mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。 下列字符受影响: \x00 \n \r \ ‘ “ \x1a 如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。 语法 mysql_real_escape_string(string,connection) 参数 描述 string 必需。规定要转义的字符串。 connection 可选。规定 MySQL 连接。如果未规定,则使用上一个连接。 说明 本函数将 string 中的特殊字符转义,并考虑到连接的当前字符集,因此可以安全用于 mysql_query()。 提示和注释 提示:可使用本函数来预防数据库攻击。 例子 例子 1 例子 2...

几点PHP建站安全性建议 0

几点PHP建站安全性建议

一、必须要对外部数据和用户输入数据进行检测 对于web程序来说,第一件事就是不能相信外部数据。(外部数据–不是程序员在程序中直接给出的数据) 例如对于来自POST表单的数据是不能直接使用的,必须经过处理才能使用。(当然要怎样处理要有您自己来决定啦) 例如 二、要禁用php中安全性措施难以展开的设置 在php程序中为了避免变量的混用,要把register_globals关掉 即register_globals=Off,register_globals介绍 三、 代码要清晰 代码一 代码二 你肯定喜欢第二段代码吧。当然看到第二段代码你就很清楚的看到第二段代码的问题了。 四、防止sql注入 对于表单获得的用户的输入,必须要经过处理才能用于sql语句。 如以下是sql语句,使用mysql_real_escape_string($pw)函数 这样就可以有效防止sql注入了。 广告

Zend Studio 10正式版注册破解 1

Zend Studio 10正式版注册破解

转自http://my.eoe.cn/fogs/archive/2739.html 以下方法仅供技术交流学习,请勿非法使用,如长期使用请支持购买正版。 1、正版购买地址: http://shop.zend.com/en/zend-studio-for-eclipse.html 2、你还没有最新安装程序? ZendStudio下载地址:http://www.geekso.com/component/zendstudio-downloads/ 3、注册破解步骤 Zend Studio 10正式版破解步骤跟9.0步骤一样,如果不懂的步骤请查看:http://www.geekso.com/ZendStudio9-key/ 4、破解文件 ZendStudio10破解文件: 10.0.0.201302111609版:com.zend.php.core_10.0.0.201302111609.jar 10.0.0.201303181202版:com.zend.php.core_10.0.0.201303181202.jar 测试版:com.zend.php.core_10.0.1.201303262329.jar 20130406版:com.zend.php.core_10.0.1.201304062016.jar 5、注册码License key 15BD3D9635621E3AD4AE0F243B9E76CCFF6383B0E254EF646FD47B142483233214 8D73E944AC95FC2A22EAF9965FE00D0BBACAD80E4B73BCFD40AADBEBD606EA4C33 A74AEBB140CFB189E545E351774B7A020CDBE4FD159CDFF00F3C6A08C6AAC1A4F8 11EDDCF59CAFD09D46C849CB780BF6EF5983D3AFC372FC2021714E6B0B 6、汉化及常见问题解答 ZendStudio问题汇总:http://www.geekso.com/zendstudioquestion/ 7、版本说明 此次正式版比上一版的测试版的性能要好很多,主要是因为测试版用的是最新的Eclipse 4.2.1(新版本Eclipse性能确实不怎么样),而正式版放弃了最新的Eclipse,而使用了Eclipse 3.8.1 juno版,性能大大提升,推荐升级此版本。 8、zend studio10汉化及常见问题解答: http://www.geekso.com/zendstudioquestion/ 9、破解失败了,怎么办?: a:尽量不要使用迅雷工具下载,迅雷下载会修改文件的扩展名,造成破解不成功。如果非要使用迅雷下载,请确保下载下来的文件扩展名是.jar的。...

zend studio 10 使用git 如何回到历史版本 1

zend studio 10 使用git 如何回到历史版本

本人使用的是zendstudio10,不知道其他版本的zendstudio如何,但是估计也差不多。Git使用的是阿里云自己搭建的git。 进入正题 一.选中你的项目->右键->replaced with->commit 二.会弹出一个对话框,告诉你现在的代码将不会保留,直接点OK即可。 三.选中你要恢复到的时间点 四.点击OK即可。

php   die() 的用法 3

php die() 的用法

在php文件中,如果你想从某行代码起直到结尾都不执行,就可以用die()方法。 例如 die();(适合调试用)

git push warning questions 0

git push warning questions

Question: warning: push.default is unset; its implicit value is changing in Git 2.0 from ‘matching’ to ‘simple’. To squelch this message and maintain the current behavior after the default changes, use: git config –global...

visual studio 2010常用快捷键 1

visual studio 2010常用快捷键

1. F5:启动调试 2. F7 /Shift-F7:显示代码窗口或显示设计器窗口 3.Alt-Enter:显示选中对象的属性(这是个常用的windows快捷键,可以用显示目录和文件的属性) 4.F6 / Shift-F6 / Ctrl-Shift-B:生成解决方案/生成项目/生成解决方案 5.Shift-Alt-C: 在项目里添加类 6.Ctrl-K + Ctrl-C: 注释一段选择代码 7.Ctrl-K + Ctrl-U: 取消一段选择代码的注释 8.Ctrl-M + Ctrl-O / Ctrl-M + Ctrl-P: 折叠定义/展开所有代码(停止大纲显示 ) 9.Ctrl-M + Ctrl+M:展开或折叠代码段(切换大纲显示) 10.Ctrl-B...

Chrome Proxy SwitchySharp在线恢复 0

Chrome Proxy SwitchySharp在线恢复

Chrome自动代理软件Proxy SwitchySharp Chrome网上应用商店地址:Proxy SwitchySharp 在线恢复备份地址 http://blog.warmcolor.net/wp-content/uploads/SwitchyOptions.bak 广告

(转) eclipse安装ADT插件重启后不显示Android SDK Manager和Android Virtual Device Manager图标的一种解决办法 1

(转) eclipse安装ADT插件重启后不显示Android SDK Manager和Android Virtual Device Manager图标的一种解决办法

下面说的这种情况是在正确安装ADT插件的前提下,重启eclipse后,工具栏中没有显示图标的一种解决办法。 来吧,进入正题,首先附上一篇Android开发环境搭建的博文http://hi.baidu.com/wlj1013/item/3e6080351168b9302f0f815c,写的很清晰,很棒。 在正确安装ADT插件重启后如果没找到想要的图标,请做如下操作: (检查是否正确安装的一种方式:打开Window——>Preferences属性,如果看到了名为Android的内容,就基本说明ok了) 打开 Eclipse ->window->costomize Perpective(定做透视图)->Command Groups Availability选项卡,将如下图中标识的复选框选中即可。 呵呵,其实很简单,有木有?只是这种情况很坑爹呀,原先以为是自己没正确安装ADT插件,重新安装了好多次,最后才发现是个问题。 广告

php数据库基本安全措施 0

php数据库基本安全措施

记住一条简单的原则:深入防御。 1 连设计数据库 第一步一般都是创建数据库,除非是使用第三方的数据库服务。当创建一个数据库的时候,会指定一个所有者来执行和新建语句。通常,只有所有者(或超级用户)才有权对数据库中的对象进行任意操作。如果想让其他用户使用,就必须赋予他们权限。 应用程序永远不要使用数据库所有者或超级用户帐号来连接数据库,因为这些帐号可以执行任意的操作,比如说修改数据库结构(例如删除一个表)或者清空整个数据库的内容。 应该为程序的每个方面创建不同的数据库帐号,并赋予对数据库对象的极有限的权限。仅分配给能完成其功能所需的权限,避免同一个用户可以完成另一个用户的事情。这样即使攻击者利用程序漏洞取得了数据库的访问权限,也最多只能做到和该程序一样的影响范围。 鼓励用户不要把所有的事务逻辑都用 web 应用程序(即用户的脚本)来实现。最好用视图(view)、触发器(trigger)或者规则(rule)在数据库层面完成。当系统升级的时候,需要为数据库开辟新的接口,这时就必须重做所有的数据库客户端。除此之外,触发器还可以透明和自动地处理字段,并在调试程序和跟踪事实时提供有用的信息。 2 连接数据库 把连接建立在 SSL 加密技术上可以增加客户端和服务器端通信的安全性,或者 SSH 也可以用于加密客户端和数据库之间的连接。如果使用了这些技术的话,攻击者要监视服务器的通信或者得到数据库的信息是很困难的。 3 加密存储模型 SSL/SSH 能保护客户端和服务器端交换的数据,但 SSL/SSH 并不能保护数据库中已有的数据。SSL 只是一个加密网络数据流的协议。 如果攻击者取得了直接访问数据库的许可(绕过 web 服务器),敏感数据就可能暴露或者被滥用,除非数据库自己保护了这些信息。对数据库内的数据加密是减少这类风险的有效途径,但是只有很少的数据库提供这些加密功能。 对于这个问题,有一个简单的解决办法,就是创建自己的加密机制,然后把它用在 PHP 程序内。PHP 有几个扩展库可以完成这个工作,比如说 Mcrypt 和 Mhash 等,它们包含多种加密运算法则。脚本在插入数据库之前先把数据加密,以后提取出来时再解密。有关加密如何工作的例子请参考相关手册。...

php 5个基本安全措施 0

php 5个基本安全措施

1:管理安装脚本 如果开发人员已经安装了一套第三方应用程序的PHP脚本,该脚本用于安装整个应用程序的工作组件,并提供一个接入点。大多数第三方软件包都建议在安装后,删除该目录包含的安装脚本。但开发人员希望保留安装脚本,他们可以创建一个.htaccess文件来控制管理访问目录。 AuthType Basic AuthName “Administrators Only” AuthUserFile /usr/local/apache/passwd/passwords Require valid-user 任何未经授权的用户,如果试图访问一个受保护的目录,将会看到一个提示,要求输入用户名和密码。密码必须匹配指定的“passwords”文件中的密码。 2:头文件 在很多情况下,开发人员可以将分布在应用程序的几个脚本包含进一个脚本里。这些脚本将包含一个“include”指令,集成单个文件到原始页面的代码里。当“include”文件包含敏感信息,包括用户名、密码和数据库访问密钥时,该文件的扩展名应该命名成“.php “,而不是典型的“.inc”扩展。“.php”扩展确保php引擎将处理该文件,并防止任何未经授权的访问。 3: MD5 vs. SHA 在某些情况下,用户最终会创建自己的用户名和密码,而站点管理员通常会对表单提交的密码加密,并保存在数据库中。在过去的几年中,开发人员会使用MD5(消息摘要算法)函数,加密成一个128位的字符串密码。今天,很多开发人员使用SHA-1(安全散列算法)函数来创建一个160位的字符串。 4: 自动全局变量 php.ini文件中包含的设置称为“register_globals”。P服务器会根据register_globals的设置,将会为服务器变量和查询字符串自动创建全局变量。在安装第三方的软件包时,比如内容管理软件,像Joomla和Drupal,安装脚本将引导用户把register_globals设置为“关闭”。将设置改变为“关闭”可以确保未经授权的用户无法通过猜测变量名称及验证密码来访问数据。 5: 初始化变量和值 许多开发人员都落入了实例化变量不赋值的陷阱,原因可能由于时间的限制而分心,或缺乏努力。身份验证过程中的变量,应该在用户登录程序开始前就有值。这个简单的步骤可以防止用户绕过验证程序或访问站点中某些他们没有权限的区域。 广告

(开山篇)开始学习Python__Python几个常用的GUI工具 0

(开山篇)开始学习Python__Python几个常用的GUI工具

最近有个项目要用到Python,所以在网上搜集了一些资料 1–国内的Python视频教程http://yun.baidu.com/share/link?shareid=3409249020&uk=606541297&third=0 2–google的Python教程https://developers.google.com/edu/python/ 另外,我今天又看了一些Python介绍,顺便贴出来分享一下 Python最大的特点就在于她的快速开发功能。她是一种胶水型语言,python几乎可以渗透在我们编程过程中的各个领域。 Python的几个常用GUI工具 1.Tkinter Tkinter 似乎是与tcl语言同时发展起来的一种界面库。tkinter是python的配备的标准gui库,也是opensource的产物。Tkinter可用于windows/linux/unix/macintosh操作系统,而且显示风格是本地化的。Tkinter用起来非常简单,python自带的 IDLE就是采用它写的。除此外,tkinter的扩展集pmw和Tix功能上都要相对它强大,但tkinter却是最基本的。我认为,在用python 做gui开发,tkinter是最基本的知识,所以这个环节是必须要学习的。你或许在以后的开发中并不常用tkinter,但是一些小型的应用上面,他还是很有用的,而且开发速度也很快。 2.WxPython WxWidgets应该算是近几年了比较流行的GUI跨平台开发技术了。 wxWidgets有不同的版本应用,有c++的,也有basic的,现在在python上面也有较好的移植。wxpython的功能上面要强于 tkinter,她提供了超过200个类,面向对象的编程风格,设计的框架类似于MFC。对于大型GUI应用上面,wxPython还是具有很强的优势的。boa constructor可以帮助我们快速可视地构建wxwidgets界面。 3.PythonCard PythonCard其实是对wxPython的再封装。不过封装的更加简单,使用起来觉得比wxPython更直观,也更简单化了。 4.Dabo 仍是一个基于wxpython的再封装库,没用过,不太了解。它提供数据库访问,商业逻辑以及用户界面。 5.PyQT Qt同样是一种开源的GUI库,Qt的类库大约在300多个,函数大约在5700多个。Qt同样适合于大型应用,由它自带的qt designer可以让我们轻松来构建界面元素。 6.pyGtk Gtk是linux下Gnome的核心开发库了。功能上面非常齐全。值得说明的是,在windows平台下gtk的显示风格并不是特别本地化。不过他带的glade的界面设计器还是可以帮你省不少事的。 7.Jython 尝试过用python访问java类库吗,那么就用jython吧。jython其实可以认为是另外一个python开发环境,基于java的,但是大多数的CPython调用jython下还是可以的。你可以在jython环境下像使用java一样来通过python的语法来调用java语言,真的很酷。 8.AnyGui 通过底层的api来访问其它工具集,像tkinter,wxpython和qt.具体也没怎么用过。 9.WPY MFC风格的Gui开发库,代码风格也类似于MFC,仅管如此,你依旧可以使用这个库来开发GUI应用,而不用担心平台移植的问题。她同样是一个跨平台的库。 10.IronPython 如果你要想开发.net下面的应用的话,那么IronPython就是你的选择,与jython有点类似,他同样支持标准的python模块,但同样增加了对.net库的支持。你也可以理解为他是另一个python开发环境。你可以非常方便地使用python语法进行.net应用的开发,这一点听起来真的挺有意思。 总之,介绍了这么多,我个人意见是,如果你是java用户,那么你就用jython吧,除了可以享受python的模块功能及语法外,你可以找到许多java的影子;如果你是.net用户,那么就用iron...

WIndows–Python配置开发环境 0

WIndows–Python配置开发环境

windows下配置Python是相当简单的,但这个网址下载,安装即可http://www.python.org/getit/,然后再配置下环境变量,就ol   开发IDE,我就不多说了,参考这个网址http://www.cnblogs.com/Realh/archive/2010/10/04/1841907.html 广告

如何修改Zend Studio的 workspace目录 0

如何修改Zend Studio的 workspace目录

经常会遇到问题,要更改workspace目录,我总结了一下三种方法,最常用第一种,, 1、进入 Window > Preferences > General > Startup and Shutdown 选中 Prompt for workspace on startup。之后重启,就可以更改了 2、进入zend的安装目录,找到configuration 目录下的 .settings 文件夹,里面有一个 org.eclipse.ui.ide.prefs, 用Ultra Edit等打开,也可以用写字板打开,找到RECENT_WORKSPACES,按照它的格式修改一下。 3、先打开zend studio,进入之后,再去打开一次,会提示 Workspace in use or cannot be created, choose...

0

五种修改Mysql密码的办法

一 、(适用于管理员或者有全局权限的用户重设其它用户的密码) 进入命令行模式 mysql -u root mysql mysql> UPDATE user SET password=PASSWORD(“your new password”) WHERE user= ‘ your mysql username’; mysql> FLUSH PRIVILEGES; mysql> QUIT 二、(应用同上,只是方法不同) mysql -u root mysql mysql> SET PASSWORD FOR...

VPN推荐(免费) 0

VPN推荐(免费)

1.代理99,这个我用着还行,免费试用30天。 2.开心直通车,我同学在用这个,听他说效果也不错。 3.greenVPN,这个免费200M/月,适合手机用户。

PHP 分界符 (EOF END EOT) 0

PHP 分界符 (EOF END EOT)

eg: echo <<< END html代码 END; ?> 红色部分为定界符,可以随便写,前后一致就可以了。。 广告