怎么在php添加后门,你会担心云服务器安全吗?
会有危险
我的服务器是腾讯云的(1块钱一个月)的学生服务器,上面跑着我的小博客,今年八月完成了服务器的docker化,用nginx-proxy完成反向代理和套https。我今天dump下了它的日志,准备看一下日志中有多少有趣的东西。
日志文件的大小足足有16M大,也许几张高清大图的大小远超16M,但是这可是纯文本文件啊。为了分析方便我使用脚本将日志文件分字段拆分插入了mariadb数据库,方便以后分析查询。
由于使用了nginx-proxy容器作为反向代理,只有以正确的域名访问我的服务器才会得到正确的响应,通过ip访问或者通过错误的域名访问统统503。没想到这个不太刻意的设置居然成了我的服务器的第一道防火墙。
把服务器日志导入数据库,大概滤掉正常的请求,首先看到的是师傅们扫目录的记录。
这些请求全部来自一个香港的IP(大概是个vps),这些大概是扫描服务器中的webshell(webshell是可以通过web直接操作服务器的后门,可以说是一种木马),也有的是扫描wp-config.php这样的WordPress配置文件,一般没有什么危害,只是作为信息收集。
继续往下看我们发现了更有趣的东西:有4834条记录与phpmyadmin的扫描有关。我们知道phpmyadmin是一个很好用的类MySQL数据库的管理前端,很多学艺不精的程序员很喜欢用它管理数据库,大大咧咧的把它放在了根目录,再配以祖传的弱密码。被拖库只是时间和运气问题。这些流量有来自香港,福建,也有北京。
是不是所有扫描都是那么简单粗暴呢,并没有,我们注意了这位师傅的扫描记录:
风格一改其他师傅简单粗暴的风格,怀着好奇心我们搜寻了一下这些请求背后的故事。
第一个payload针对的是织梦cms(Dedecms)的任意文件上传漏洞,这已经是一个老漏洞了,黑客可以利用这个漏洞上传webshell木马什么的,最终控制服务器。
第三个payload(xycms)针对的是xycms咨询公司建站系统的漏洞(都不能叫漏洞了),直接把数据库放在了web目录下,真正实现一键拖库。
(厂商忽略此漏洞可真是太蠢了)
下一个漏洞又是织梦cms的,就是那个download.php和ad_js的。这是一个2013年的高危漏洞,因为变量未被正确初始化, 黑客可以通过一套花里胡哨的操作执行sql注入,并且还能通过一个程序把数据库中的内容写入文件,最终通过一套连环操作在服务器中留下后门。
下一个是个新漏洞,这个高危漏洞今天7月才被爆出,可以远程执行代码,来自Modx Revolution
漏洞全来自php?并没有,我们注意到这样一条记录:
此攻击针对的是巨硬家IIS 6.0的一个安全漏洞,这是一个利用缓存区溢出的高危漏洞,可以导致远程代码执行。
还有一些利用Weblogic的新洞(CVE-2018-3252),Apache Struts2的漏洞(CVE-2017-5638)的payload我在这里就不再列举了。当然当然,最有意思的还属最后一个payload:
这个payload罕见的附上了用户名,我们在网上搜索和这个payload相关信息的时候发现,这并不是一个针对服务器的攻击payload,而是针对一些物联网设备,比如说……摄像头。
hi3510是海思公司推出的一款视频压缩芯片,主要用于摄像头,我们找到了一份IP Camera CGI的应用指南,找到了相对应的命令用法:
但是我们并没有在网上搜索到相关的漏洞,但是发现很多网站的日志中都存在这条记录
所以这极有可能是一个还没有公开的,物联网中摄像头中存在的漏洞。所以,有师傅日了摄像头当肉鸡看起来并不是传言。
然而,上面分析的这些,也只是黑客黑产冰山上的小冰渣。现实比这要严重的多,也许黑客在黑市中贩卖着你的隐私,你的服务器,而你却浑然不知。
女孩子学点什么技能来就业呢?
这个问题问得很好,说明你是一个有梦想的女孩,而且又是一个要靠自己努力劳动来实现梦想的人,先给你点赞,再谈谈我的看法。
首先:不知道你现在的学历如何?不是说学历多么重要,学历高基础就比较厚实,参考的范围就比较广,那么我就先把你当成一个普通大学的大学生来聊一聊。
如果你是一个刚毕业的大学生,那是肯定是学有所长的,这个所长对就业来说是完全足够的,只是在选择的时候,对于工资与其他的待遇,不要要求太高,毕竟还是刚从学校毕业出来的,即使理论水平很高,但是与现实的实践还是与差距的,还需要在具体的实际工作中去把理论与实践相结合的一个过程,这个过程你就是一个再学习再提高的过程,这个过程在你的职业规划当中也是一个万丈高楼平地起的过程,所以要有自信,就算是待遇达不到自己的需求,但这个平台只要能让你实现职业规划的第一步,你就勇敢的去接受,以一个学徒工的心态,为自己的将来去学习夯实基础并去提高。
今天下午我遇到了一个女孩,初中没毕业就要出来赚钱,现在在学美容,我跟他说你还是回去读书,你现在这个年纪不是赚钱的时候,而是要去读书的,现在觉得读书没用,当你进入社会以后,你会感觉书读的太少了,会后悔那个时候为什么不多读点书呢?这是我们深有体会的。看着小女孩低头走在斑马线上,我的心好痛。
然后,如果是刚毕业的女孩子,不想再读书而想学一门手艺就业我是不认可的,不管怎么说?一个女孩子多读一点书都是有好处的,以后成家立业、相夫教子、待人接物,因为你在知识海洋里的沉淀,会让你与众不同。如果纯粹为这个问题而回答我认为女孩子在学技能就业方面既要考虑短期的利益,又要考虑长期的前景,短期的可以去学一些纯手艺的功夫比如说美容化妆美发、餐饮等,这不要投入多少资金,而且时间短,见效如何未知,学好以后想自己做这方面的生意,需要租门面,现在的房租越来越贵,租金越来越高,人工也越来越高,靠一个人生意做不大,也赚不了多少钱,请人成本高,不懂团队管理,不懂市场运作,在风华正茂的时候去做一个纯粹小老板,我认为这也是不可取的。
再之,你要知道现在年轻人正在处于一个非常美好的新时代,科技发达,技术进步政策也好,就业门路千千万万,把眼光看远一点,未来在我们国家你们年轻人的前景在哪里?我想就是要多了解新资讯,学习新技术,现在在象今日头条西瓜视频等平台通过互联网来创业,象我这个年龄的人都看好了这方面的平台,为我们的养老做准备,而且在互联网上也有很多草根,通过自己的努力,低成本的运作也能有所收获,做不了李子柒,做他的百分之一哪怕千分之一,也是很开心的,如果要我给你一个建议,你可以在今日头条西瓜视频等互联平台上来了解一下,现在年轻人的职业方向应当与5G全面发展同步,在国家的大政策趋势中寻求发展才是最有前景的,互联网的创业就是你应该学的技能,即使你有传统手艺也会让你锦上添花。
希望我的建议能对你有所帮助,谢谢
大公司一般都是选Java还是PHP?
谢邀!
首先说明:选择Java还是PHP,不是一个零和问题,不是有你,没我,而是可以相互并存的!
笔者遇到的一些大型项目,有不少是采取前端PHP+后端JAVA的混合模式;从整体架构,以及可维护性上一般会有以下考虑:
靠近用户的前端,使用PHP能够更快的完成前端频繁而琐碎的更新,自如的应对各种需求的变化。页面的结构调整、用户输入内容的基本验证、仅只和用户交互有关的简单逻辑等都很适合使用PHP来开发,甚至可以通过类似Smarty等模板技术将其页面的变动迁移到前端团队。
而基本的业务逻辑和数据的更新采用Java开发,可以有效的提高复用度、提升性能和吞吐能力、规避安全问题等。而开发效率稍有降低换来的是可维护性的提升,发布速度慢就更不是问题了,因为通常对于基础业务逻辑的调整往往都是整体修改,并层层测试确认才能发布的。
所以,大型网站前端采用PHP后端采用Java,既好招人又好维护、系统稳定还性能高、连安全性都大大增加。代码复用、文档完备度居然也都改善了。让你在以上这些好处触手可及时,对架构师知识谱系在广度上要求更高一些这事根本就不是个问题。
当然也有采取传统前后端纯JAVA的,不过现在已经较少了
在过去十年,基于Java的MVC框架如同雨后春笋一般层出不穷,
但都不愿意面对或者解决的问题是,它对前端设计师极不友好,而且,开发效率及其低下
互联网企业鲜有基于Java,尤其是基于MVC来构建自己的网站,是有深刻的原因的:
1. 对前端设计师极不友好。MVC模式下,可编程的模板语言成为非常重要的角色,而以视觉创造为主要工作的前端设计师,他们熟悉的是HTML和CSS,而嵌入模板文件的各类动态代码,对他们来说即使不是如同天书,也是及其让人及其困惑的,当然,他们必然要面对这些内容,因此,传统的PHP必然成为他们的最佳,因为,这个至少是比较容易让人理解的。
2. 开发效率低下。互联网企业的开发通常是快速迭代的,并没有明确的需求一说,传统的PHP开发模式之所以受到青睐,就在于它易于变更,开发速度快,MVC模式的开发在这一点基本完败,
因此,很少有互联网企业会基于Java来构建自己的前端页面,即使有,也通常是基于JSP的自有框架。
更进一步的,在过去将近10年的MVC历史中,我们其实一直都被下面的问题困扰着:
1. 前端设计师和工程师一直在抱怨嵌入到页面的动态代码让他们很难对页面进行大规模的重构,而另一方面,后端开发人员也经常抱怨他们要花很大的精力才能修复前端对页面的重构带来的问题。
2. 开发人员经常还会因为模板语言贫乏的功能而饱受折磨。一些特殊的复杂渲染逻辑经常需要富有经验的开发人员才能写出极具技巧性的代码来实现。而这样的代码,通常会成为谁也无法理解的魔术代码。
3. 开发人员对MVC低下的开发效率极度不满,我们一直在渴望可以有一个更加高效的开发模式。
最后总结一下,你这个问题本身可能就是个问题,呵呵
一个公司选择什么技术架构不是一成不变的,而是会根据项目特点,技术特点来综合评估进行技术选项的!
程序员和黑客有什么区别?
从事编程工作已经十几年了,程序员的工作在方向上和黑客属于相反的方向,但在达成目标的过程有着本质的区别,程序员做的事情更多是一种工作,绝大部分程序员写代码就是为了养家糊口,黑客的工作更多是兴趣支撑着,这是本质的区别,黑客更多玩的是逆向相对来讲工作会更加枯燥一些,没有程序员的工作整体系统化,在有些层面其实程序员和黑客是相通的,因为很多企业的网络安全部门就是直接面对黑客,有些甚至是黑客直接诏安来的,所以有些程序员本身就是黑客出身,要想成为黑客首先成为一个程序员,编程的基本功也是必须具备的。
黑客和程序员的最大区别?开发的动机不同。黑客主要做着程序员逆向的工作,程序员会按照项目规划进行开发,开发出产品之后不停的修正产品里面的漏洞或者增加功能,黑客就是针对现有的一些产品进行漏洞的寻找,目前很多主流的大型软件也是一直在更新软件,更新软件的主要意义在于根据已经暴露出来的漏洞进行修复,同时增加后续的功能。
程序员的工作安排的推动力靠着企业的项目推动,还会有相应的项目经理或者产品经理推动事情向前走,但黑客相对比较单一,没有什么正经的项目或者产品推进完全靠着一股热血来工作,从这点上讲黑客更加狂野,程序员更像是为企业打工的职员,所以黑客更有一丝的神秘感在里面。
绝大部分的程序员对于编程工作不是很感兴趣,从事代码工作主要觉得程序员的工资相对比较高,而且工作环境比起很多户外的工种好太多了,但实际上程序员的工作属于高度的脑力劳动者,并不比体力劳动的在精神上付出要少。但如果从兴趣角度上分析,又是一种极大的享受,很多喜欢写代码的人在编程的海洋中如鱼得水。
黑客从事的相当于程序员职业中的安全领域,程序员的范围相对更加宽泛,所以不能简单的认为所有的黑客都能从事程序员的工作,术业有专攻,虽然都可以从事写代码的工作,但不存在直接意义上的即插即用,但从常规意义上讲,黑客对于编程能力理解起来更加深刻直接,毕竟属于兴趣在推动,程序员本身被动性质工作更多一点。
程序员和黑客最大的区别在于编程情怀,黑客真正意义工作就是信仰。但是现实中很多人把黑客理解成为了骇客,黑客本身不造成实质性的破坏,而且不是以赚取金钱为最大的目的。现实中很多人pj个密码,或者攻击个服务器都当成黑客的行为了,以赚取利润或者破坏为目的的行为都不是真正意义上黑客的行为。真正的黑客做事情顶多算是点到为主,不会为专门为了攻击而攻击,不要把这些所谓的破坏行为嫁接到黑客的头上,希望能帮到你。
如何防止服务器被入侵?
你的问题,有我回答,我是IT屠工!
1、用户安全
(1) 运行 lusrmgr.msc,重命名原 Administrator 用户为自定义一定长度的名字, 并新建同名Administrator 普通用户,设置超长密码去除所有隶属用户组。
(2) 运行 gpedit.msc ——计算机配置—安全设置—账户策略—密码策略 启动密码复杂性要求,设置密码最小长度、密码最长使用期限,定期修改密码保证 服务器账户的密码安全。
(3) 运行 gpedit.msc ——计算机配置—安全设置—账户策略—账户锁定策略 启动账户锁定,设置单用户多次登录错误锁定策略,具体设置参照要求设置。
(4) 运行 gpedit.msc ——计算机配置—安全设置—本地策略—安全选项 交互式登录 :不显示上次的用户名;——启动 交互式登录:回话锁定时显示用户信息;——不显示用户信息
(5) 运行 gpedit.msc ——计算机配置—安全设置—本地策略—安全选项
网络访问:可匿名访问的共享;——清空
网络访问:可匿名访问的命名管道;——清空
网络访问:可远程访问的注册表路径;——清空
网络访问:可远程访问的注册表路径和子路径;——清空
(6) 运行
gpedit.msc
——计算机配置—安全设置—本地策略 通过终端服务拒绝登陆——加入一下用户ASPNET
Guest IUSR_***** IWAM_*****
NETWORK SERVICE
SQLDebugger
注:用户添加查找如下图:
(7) 运行 gpedit.msc ——计算机配置—安全设置—本地策略—策略审核 即系统日志记录的审核消息,方便我们检查服务器的账户安全,推荐设置如下:
2、共享安全
(1) 运行 Regedit——删除系统默认的共享 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameter
s]增加一个键:名称 : AutoShareServer ; 类型 : REG_DWORD值; : 0
(2) 运行 Regedit——禁止 IPC 空连接 [Local_Machine/System/CurrentControlSet/Control/LSA] 把 RestrictAnonymous 的键值改成 ”1”。
3. 服务端口安全
(1) 运行 Regedit——修改 3389 远程端口
打开 [HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\Terminal
Server\Wds\rdpwd\Tds\tcp],将 PortNamber 的键值(默认是3389 )修改成自定义端 口:14720
打开 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro1Set\Control\Tenninal Server\WinStations\RDP-Tcp] ,将 PortNumber 的键值(默认是3389)修改成自定义 端口 :14720
(2) 运行 services.msc——禁用不需要的和危险的服务 以下列出建议禁止的服务,具体情况根据需求分析执行:
Alerter 发送管理警报和通知
Automatic Updates Windows 自动更新服务
Computer Browser 维护网络计算机更新(网上邻居列表)
Distributed File System 局域网管理共享文件
Distributed linktracking client 用于局域网更新连接信息
Error reporting service 发送错误报告
Remote Procedure Call (RPC) Locator RpcNs*远程过程调用(RPC)
Remote Registry 远程修改注册表
Removable storage 管理可移动媒体、驱动程序和库
Remote Desktop Help Session Manager 远程协助
Routing and Remote Access 在局域网以及广域网环境中为企业提供路由服务
Shell Hardware Detection 为自动播放硬件事件提供通知。
Messenger 消息文件传输服务
Net Logon 域控制器通道管理
NTLMSecuritysupportprovide telnet 服务和 Microsoft Serch 用的
PrintSpooler 打印服务
telnet telnet 服务
Workstation 泄漏系统用户名列表(注:如使用局域网请勿关闭)
(3) 运行 gpedit.msc —— IPSec安全加密端口,内部使用加密访问。
原理:利用组策略中的“ IP 安全策略”功能中,安全服务器(需要安全)功能。
将 所有访问远程如13013 端口的请求筛选到该ip安全策略中来, 使得该请求需要通过 双方的预共享密钥进行身份认证后才能进行连接,其中如果一方没有启用“需要安全”时,则无法进行连接,同时如果客户端的预共享密钥错误则无法与服务器进行 连接。在此条件下,不影响其他服务的正常运行。
操作步骤:
1) 打开
GPEDIT.MSC
,在计算机策略中有“ IP 安全策略” ,选择“安全服务器(需要 安全)”项目属性,然后在IP 安全规则中选择“所有IP 通信”打开编辑,在“编 辑规则属性”中,双击“所有IP通信”,在 IP 筛选器中,添加或编辑一个筛选2) 退回到 “编辑规则属性” 中,在此再选择“身份验证方法” 。删除“ Kerberos 5”,
点击添加,在“新身份验证方法”中,选择“使用此字符串(预共享密钥) ,然后填写服务器所填的预共享密钥 (服务器的预共享密钥为 ”123abc,.”)。然后确 定。
3) 选择“安全服务器(需要安全)”右键指派即可。 附截图:
以上是我的回答,希望可以帮助到您!