当前位置: 首页 > Linux

网络安全逐渐成为程序员的必备技能

时间:2023-04-06 20:56:32 Linux

不知道大家有没有发现。如今,某些知名企业的信息泄露事件频频发生。相应地,网络安全问题也越来越受到重视。我从百度指数中提取了两张图片分享给大家。可以看出,与网络安全相关的信息和关注度正在逐渐增加,尤其是近年来,数起大规模的数据泄露等安全事件在舆论上引起了不小的轰动。.事实上,除去一些特定框架中的特定安全问题,还有很多通用的安全问题。最常见的如下。我认为每个程序员都应该知道如何尽可能地避免这些常见问题。1、SQL注入2、跨站脚本攻击(XSS)3、跨站请求伪造(CSRF)4、越权漏洞1、SQL注入SQL注入应该是大多数人都知道的安全问题。原因是SQL语句的编写是通过字符串拼接进行的,包括参数。那么一旦用户输入的参数改变了整条语句的含义,SQL语句的执行结果就变得不可预测了。例如,SELECT*FROMuserWHEREid='1or1='1'。粗体部分是用户输入的内容。如果执行上面的SQL语句,所有的用户信息都会被泄露。SQL注入有很多变种,比如故意让语句执行报错,从错误信息中获取重要信息等。如何预防?只是避免SQL连接并以参数化的方式执行SQL。比如上面的例子,如果@id参数的数据类型是int,那么“or1='1”自然不能转为int类型。2、跨站脚本攻击(XSS)XSS最常出现在一些基于内容的网站上,因为它主要是针对基于服务器端数据动态渲染html页面。比如我在某个社区回复帖子的时候,故意输入“楼主牛逼~

”。如果服务器不做相应处理,直接将内容原封不动的保存在数据库中,那么当帖子转到我回复所在楼层时,会弹窗提示“250”。当然,只是弹出一个窗口是没有意义的。如果脚本获取到用户本地的cookie信息并上传到指定的服务器,那么其他人就可以使用用户的cookie登录他的账号,想想就有点可怕。如何预防?要么过滤掉这样的html标签,因为大部分场景用纯文本就可以满足。如果有富文本的需求,可以进行转义,存为字符,避免直接保存html标签。跨站请求伪造(CSRF)CSRF是利用浏览器的缓存和网站的登录状态记忆功能,通过恶意脚本向你刚刚访问的网站发起请求,让网站误认为是你自己操作的.例如,您刚刚访问了一个银行网站,您甚至在另一个选项卡中打开了该银行网站。然后这个时候不小心打开了另一个钓鱼网站,页面里的脚本向银行网站发起转账请求,你的银行账户就莫名其妙地缺钱了。(当然现在的银行网站已经考虑到这个问题了)如何预防呢?作为网站开发者,最简单的方法就是判断referer,看请求的来源是否可信。当然,更好的办法是给每个正常登录的用户分配一个token,对用户发起的每一次请求都验证token的有效性。越权漏洞“越权”,顾名思义,就是越过应有的权限。比如某电商网站查看订单信息的url是http://www.dianshang.com/orde...如果我手动将url的末尾数字改成10002发起请求,如果服务器不校验如果当前登录人信息校验通过,则越权获取10002的订单信息。如何预防?主要有两点。做好权限验证,不要偷懒。数字或id数据,避免递增顺序。作为额外的好处,它可以防止竞争对手猜测您的真实订单号。事实上,还存在很多安全问题,比如支付漏洞(支付金额未经核实)、上传攻击等。但是处理的大体思路和上面说的四种差不多。为了让大家在编码的时候更容易理解,更有安全意识,我提炼了一些思路给大家。只要是外部输入的数据,都要进行全面的校验,确保处理和返回的数据符合预期。代码的实现最大限度地减少了冗余的外部交互。在处理错误时,一定不要向客户端抛出技术异常信息,尤其是堆栈信息。如果这些太多了,不记得了。然后在脑海里记住一个词——“严进严出”。扫描下方二维码免费领取10G渗透精品课程,先到先得!!!