13306647218

公司动态

Company dynamics

需要掌握的一些关于网站安全的问题

作者:蓝梦seo专业企业网站优化时间:2020-07-13 13:37:10

程序员需要掌握基本的Web安全知识,然后才能发生。您知道有多少个网络安全漏洞?可能希望在这里列出10个项目,您可以转到网站上找到相应的教程,以提高自身水平1、命令注入(Command Injection)2、eval注入(Eval Injection)3、客户端脚本攻击(Script Insertion)4、跨网站脚本攻击(Cross Site Scripting, XSS)5、SQL注入攻击(SQL injection)6、跨网站请求伪造攻击(Cross Site Request Forgeries, CSRF)7、Session 会话劫持(Session Hijacking)8 Session 会话固定(Sessionfixation)9、HTTP响应拆分攻击(HTTP Response Splitting)020 -66

本文主要介绍三个最常遇到的问题:XXS,CSRF,SQL注入。10、文件上传漏洞(File Upload Attack)一、XSS漏洞XSS(跨站点脚本攻击)是指跨站点脚本攻击,缩写为XSS,以便与CSS(层叠样式表)区分开。攻击者主要使用跨站点脚本来读取Cookie或网站用户的其他个人数据。一旦攻击者获得了这些数据,他就可以假装用户已登录网站并获得了用户的权限。简介1.攻击者以某种方式将xss http链接发送给目标用户。2.目标用户登录网站并打开攻击者在登录过程中发送的xss链接。 3.网站执行了该xss攻击脚本。4.目标用户的页面跳至攻击者的网站,攻击者获得了目标用户的信息。5.攻击者使用目标用户的信息登录了该网站,以完成该攻击的目的。攻击2.跨站点脚本攻击的一般步骤1.盗窃用户信息,例如登录帐户,网上银行帐户等。2.使用用户的身份读取,篡改,添加,删除敏感的公司数据等。3.盗窃重要的商业价值数据4.非法转移5.强行发送电子邮件6.网站挂马7,控制受害者的机器来发起其他网站的攻击

3. XSS攻击的危险1)XSS的根本原因是客户端提交的数据未完全过滤,因此重点在于过滤用户提交的信息。 2)将重要的cookie标记为仅http,因此js中的语句将不会获取cookie。 3)仅允许用户输入我们期望的数据。例如:age仅允许用户输入数字,数字外的字符被过滤掉。 4)数据的HTML编码:当用户提交数据时,它是HTML编码的,并且在进行下一步处理之前,相应的符号将转换为实体名称。 5)过滤或删除特殊的HTML标签,例如:脚本,iframe,用于,用于6)过滤js事件的标签。例如,“ onclick=”,“ onfocus”等。4.防止XSS解决方案二、CSRF攻击(跨站点请求伪造)CSRF(跨站点请求伪造),表示跨站点请求伪造,也被编写为XSRF。攻击者伪造了目标用户的HTTP请求,然后将该请求发送到具有CSRF漏洞的网站。网站执行此请求后,将触发跨站点请求伪造攻击。攻击者使用隐蔽的HTTP连接,使目标用户无需关注即可单击链接。由于用户自己单击链接,并且他是具有法律许可的合法用户,因此目标用户可以在网站内执行特定的HTTP。链接达到攻击者的目的。简介主要危害来自攻击者窃取用户身份并发送恶意请求。例如:模拟用户行为以发送电子邮件,发送消息并保护诸如付款和转账之类的财产。 例如,当某个购物网站购买商品时,item参数用于确定要购买的商品,而num参数用于确定要购买的数量。该数字变为1,000。攻击的危害1)POST用于接收重要的数据交互。当然,POST不是万能药。伪造的形式可能会破裂。 2)使用验证码。每当涉及数据交互时,请首先验证验证码。这种方法可以完全解决CSRF。但是,出于用户体验的考虑,网站无法向所有操作添加验证码。因此,验证码只能用作辅助方法,而不能用作主要解决方案。 3)验证HTTP Referer字段,该字段记录HTTP请求的源地址。最常见的应用是图片安全性。 4)为每个表格添加令牌并进行验证。3.防止CSRF的解决方案三、SQL注入攻击(SQL injection)所谓的SQL注入攻击,即当某些程序员编写代码时,他们没有判断用户输入数据的合法性,这使应用程序具有潜在的安全风险。用户可以提交一段数据库查询代码,并根据程序返回的结果获取一些他想知道的数据。 SQL注入攻击是指攻击者以某种形式提交精心构建的SQL语句并更改原始SQL语句的攻击者。如果Web应用程序不检查提交的数据,将导致SQL注入攻击。1 SQL注入1)攻击者访问带有SQL注入漏洞的站点并寻找注入点2)攻击者构造注入语句,并将注入语句与SQL语句结合在程序中以生成新的SQL语句3)新的将SQL语句提交给数据库进行处理4)数据库执行新的SQL语句,从而导致SQL注入攻击2 SQL注入攻击的一般步骤:通常,SQL注入的位置包括:1)表单提交,主要是POST请求,包括GET请求; 2)URL参数提交,主要是GET请求参数; 3)提交cookie参数; 4)HTTP请求标头中的一些可修改值,例如Referer,User_Agent等;3 防止SQL注入的方式对于一个简单的示例,从id=100的用户中选择*,代表ID为100的用户信息。如果id=100成为id=100或2=2,则sql将变为:从id=100的用户中选择*或2=2,这将查询所有用户表信息。这是典型的sql注入。4.举例1)验证用户输入并使用正则表达式过滤传入的参数2)使用参数化语句而不是拼接SQL,还可以使用安全存储过程3)在使用数据库连接时,不要对每个应用程序使用管理员特权数据库连接权限限制4)检查数据存储类型5)重要信息必须加密

以上是本文的全部内容,希望对大家的学习有所帮助,也希望您支持php自学中心5.防止SQL注入的解决方案