首页 / 知识
关于安全性:我应该了解哪些常见的Web漏洞?
2023-04-12 22:34:00

What common web exploits should I know about?在进行Web编程时,我还是很环保的,我将大部分时间都花在了客户端应用程序上。因此,我对自己应该在自己的网站中担心/测试的常见漏洞感到好奇。 我将在此处发布OWASP Top 2007的缩写列表,这样人们就不必浏览另一个链接,以防源丢失。 跨站点脚本(XSS)
注射缺陷
恶意文件执行
不安全的直接对象参考
跨站请求伪造(CSRF)
信息泄漏和错误处理
身份验证和会话管理中断
不安全的密码存储
不安全的通讯
无法限制URL访问
开放Web应用程序安全性项目 -亚当 OWASP保留了要注意的十大Web攻击列表,以及用于Web开发的大量其他有用的安全信息。 这三个是最重要的:
每个人都会说" SQL注入",因为它是听起来最可怕的漏洞,也是最容易引起人们注意的漏洞。跨站点脚本(XSS)将排在第二位,因为它也很容易理解。"输入验证欠佳"不是漏洞,而是对安全性最佳做法的评估。 让我们从另一个angular尝试一下。当在Web应用程序中实现以下功能时,这些功能可能会使您感到困惑:
除了这些功能之外,您在应用程序中可能犯的#1错误是在某个地方公开了数据库行ID,以便用户X只需将数字从" 5"更改为" 6"即可看到用户Y的数据。"。
这里的大多数人都提到了SQL Injection和XSS,这是正确的,但不要被愚弄-作为Web开发人员,您需要担心的最重要的事情是INPUT VALIDATION,这是XSS和SQL Injection的所在源于。 例如,如果您有一个仅接受整数的表单字段,请确保在客户端和服务器端都实现某种操作以清理数据。 检查并仔细检查所有输入数据,特别是如果这些输入数据最终将出现在SQL查询中时。我建议构建一个逃逸器函数,并将其包装到查询中。例如:
同样,如果您要将任何用户输入的信息显示到网页上,请确保已剥离所有标签或可能导致Javascript执行的其他所有内容(例如onLoad = onMouseOver =等)。 )。 SQL注入攻击。它们很容易避免,但是太普遍了。 从不永远永远(我是否提到过"永远"?)信任从表单元素传递给您的用户信息。如果在将数据传递到应用程序的其他逻辑层之前未对其进行审核,则不妨将您站点的密钥提供给大街上的陌生人。 您没有提到您所使用的平台,但是如果在ASP.NET上,请先了解一下Scott Guthrie及其文章"技巧/窍门:防范SQL注入攻击"。 此后,您需要考虑允许用户向数据库中提交并最终从数据库中提交的数据类型。如果您允许插入HTML并在以后出现,则您很容易受到跨站点脚本攻击(称为XSS)的攻击。<??pb> 这是我想到的两个,但是我们自己的杰夫·阿特伍德(Jeff Atwood)在Coding Horror上有一篇不错的文章,其中回顾了《软件安全的19个致命罪》一书。 这也是wordpress的核心开发人员之一关于安全性的简短简短演讲。 wordpress中的安全性 它涵盖了Web应用程序中的所有基本安全问题。 我不是专家,但是到目前为止,我所学到的黄金法则是不信任任何用户数据(GET,POST,COOKIE)。常见的攻击类型以及如何保存自己: 使用存储过程和/或参数化查询对保护您免受sql注入大有帮助。另外,不要让您的Web应用程序以sa或dbo身份访问数据库-设置一个标准用户帐户并设置权限。 Xpa的 AS(跨站点脚本)ASP.NET具有一些内置保护。最好的办法是使用验证控件和Regex过滤输入。 SQL注入。跨站脚本。 您甚至可以在此站点上看到,您所要寻找的最具破坏性的事情涉及到将代码注入到您的应用程序中,因此XSS(跨站点脚本)和SQL注入(@Patrick的建议)是您最大的担忧。 最常见的可能是数据库注入攻击和跨站点脚本攻击;主要是因为这些是最容易实现的(很可能是因为这些是程序员最懒惰的)。 |
最新内容
相关内容
Python网络编程调用接收数据的三种
Python网络编程调用接收数据的三种方法,数据,代码,基础,通用,通讯,服务,网络,培训,方法,报文,最近在使用python进行网络编程开发一个通用的tc使用Python的toolz库开始函数式编
使用Python的toolz库开始函数式编程,代码,函数,培训,位置,参数,字典,顺序,操作,结果,测试,toolz库允许你操作函数,使其更容易理解,更容易测试代Python线程编程的两种方式
Python线程编程的两种方式,代码,包装,线程,培训,函数,对象,模块,参数,方式,方法,Python中如果要使用线程的话,python的lib中提供了两种方式。python是一种编程语言吗?
python是一种编程语言吗?,放宽,适当,平台,培训,语言,指令,计算机,机器,程序,解释性,python是一种编程语言,Python是一种跨平台的计算机程序设计Python可以做桌面应用程序吗
Python可以做桌面应用程序吗,平台,系统,较大,标准,培训,界面,桌面,文档,入门,开发者,python可以做桌面应用程序!目前比较主流的几个GUI平台:1学习编程Python用什么电脑
学习编程Python用什么电脑,电脑,数据,培训,基础,产品,以上,固态,经济基础,算法,电脑硬件,python对于电脑硬件基本没什么要求,单纯学Python的话python编程根号怎么打
python编程根号怎么打,数字,培训,函数,根号,次方,开平,语法,平方根,静态,模块,python中开平方python数字sqrt()函数返回x的平方根(x>0)。语法python学习python编程可以从事什么
python学习python编程可以从事什么工作岗位,工作,分析,网络,数据,数字,行政,销售,培训,资产,庞大,一、学Python编程能做的工作,编程方向:1、Webpython网络编程及前端常见问题
python网络编程及前端常见问题,数据,服务,分析,培训,状态,前端,区别,服务器,常见问题,上面,当我们学习Python时,需要掌握的的知识有很多,除了有python可以做网页编程吗?
python可以做网页编程吗?,技术,公司,数据,网络,人工智能,工资,分析,工作,设计,市场,什么是Python? Python是一种计算机编程语言,也是一种python编程语言有什么用途
python编程语言有什么用途,设计,大规模,软件,培训,数据,平台,工具,生产,面临,通用,Python是一门简单易学的编程语言。阅读好的Python程序感觉python编程中的缩进是什么意思
python编程中的缩进是什么意思,培训,代码,对比,设计,括号,语句,冒号,程序,空格,下面,python最具特色的是用缩进来标明成块的代码。我下面以if