分类: 编程技术
MongoDB注入:如何攻击MongoDB?

不管是商业项目还是个人项目,MongoDB都是一个非常好的数据库引擎,国内很多公司也开始用MongoDB。比起传统的数据库,这款数据库比较新,也有很多安全问题是大家还没有意识到的,而这些问题通常可以打得你措手不及。

Python导入模块的几种姿势

作为一名新手Python程序员,你首先需要学习的内容之一就是如何导入模块或包。但是我注意到,那些许多年来不时使用Python的人并不是都知道Python的导入机制其实非常灵活。在本文中,我们将探讨以下话题

技术成长四个阶段需要的架构知识

本文是李庆丰在高可用架构后花园群 3.19 北京光华路安妮意大利餐厅下午茶活动的演讲。

JavaScript API 设计原则

什么是好的 API 设计:在自描述的同时,能达到抽象的目标。

将 Web 应用性能提高十倍的10条建议

提高 web 应用的性能从来没有比现在更重要过。网络经济的比重一直在增长;全球经济超过 5% 的价值是在因特网上产生的(数据参见下面的资料)。这个时刻在线的超连接世界意味着用户对其的期望值也处于历史上的最高点。如果你的网站不能及时的响应,或者你的 app 不能无延时的工作,用户会很快的投奔到你的竞争对手那里。

阮一峰:浏览器同源政策及其规避方法

浏览器安全的基石是”同源政策”(same-origin policy)。很多开发者都知道这一点,但了解得不全面。本文详细介绍”同源政策”的各个方面,以及如何规避它。

记一次 MySQL 的慢查优化

最近遇见一个 MySQL 的慢查问题,于是排查了下,这里把相关的过程做个总结

写代码的四个境界

硅谷码工随着等级的上升,收入不是呈线性增长,很多时候是翻倍地长的。我觉得其实是合理的。所以在初入职场面临的很多选择,其实还是应该以提高自身水平作为最重要的因素。年薪上差的那几万十几万,如果好好发展,到了后面,真的就不算什么了。第一份工作为了 package 做选择,真的不值得。

使用 NW.js 将 Web 应用打包为桌面应用

平时工作中经常需要开发各种管理后台,为了提升开发效率,一般会使用 Bootstrap 一类的 CSS 框架,使用 AngularJS 一类的单页应用框架,让 Web 开发能够更好的将精力集中在业务逻辑上。

NPM 与 left-pad 事件:我们是不是早已忘记该如何好好地编程?

开发者朋友们,我们该谈一谈这个问题了。你们应该知道本周的 left-pad 事件: React 、 Babel 和许多流行的npm模块都受到波及,无法正常运行。这一事件的起因十分令人诧异。这些受到影响的模块都引入了一个叫做 left-pad 的模块。截至此时, left-pad 这个模块在Github上也只有寥寥十一个star。在整个模块中,作者只用十一行代码实现了一个简单的字符串处理函数。以下就是这十一行代码:

清晰、高效、一致、美观 —— 关于设计原则的优先级排序

我们在 Salesforce 的产品设计团队当中有个不成文的规矩:无论谁拿出一份什么清单 – 功能列表、研究报告,或者哪怕只是体恤衫名录 – 无论什么,只要是清单的形式,肯定会有人出来问一句:“按优先级排过序吗?”

C++11中对类(class)新增的特性

在我们没有显式定义类的复制构造函数和赋值操作符的情况下,编译器会为我们生成默认的这两个函数:默认的赋值函数以内存复制的形式完成对象的复制。这种机制可以为我们节省很多编写复制构造函数和赋值操作符的时间,但是在某些情况下,比如我们不希望对象被复制,在之前我们需要将复制构造函数和赋值操作符声明为private,现在可以使用delete关键字实现:

一个线程的独白

我是一个线程, 我一出生就被编了个号: 0x3704, 然后被领到一个昏暗的屋子里, 这里我发现了很多和我一模一样的同伴。

一种活细胞“编程语言”

麻省理工学院的生物工程师们创造了一种编程语言,使他们能够快速设计复杂的 DNA 编码通路,从而给活细胞赋予新的功能。使用这种语言,任何人都可以为他们想要的功能写出一段程序,如检测和应对特定环境条件的程序。然后,他们就可以生成能实现这些功能的 DNA 序列。

JavaScript6里出现了哪些新语法、新特征?

JS的新版本 ES6/ECMAScript2015 在去年出来了,我们现在普遍使用的ES5是在2009年出来的,相隔这么多年,变化比较大,添加了一些很好用的特性

Linux Shell 文本处理工具集锦

本文将介绍Linux下使用Shell处理文本时最常用的工具:
find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk;
提供的例子和参数都是最常用和最为实用的;
我对shell脚本使用的原则是命令单行书写,尽量不要超过2行;
如果有更为复杂的任务需求,还是考虑python吧;

关于如何高效地组织程序代码,我只说这四招

本文介绍了四种组织代码的策略:元件组织法、工具箱组织法、层组织法、类别组织法。这四种策略形成了一定的层次体系,每种策略各针对不同的代码内聚力类型,可以说的上是包罗万象。

iOS开发入门

最近,我在帮我的一些朋友开始学习iOS开发,他们要求我列出一些入门iOS开发所需要了解的内容清单。这对于一篇博客来说似乎是一个不错的主题。我整理出来一个清单,以此向大家介绍要成为一个入门级iOS开发者,你需要知道这些东西(以下顺序不分先后)。

Windows批处理(cmd/bat)常用命令小结

批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务。用户只需双击批处理文件便可执行任务,而无需重复输入相同指令。

程序员编写技术文档的新手指南

摄像机从舞台左边摇摄。画面中显示着一个打开了空白页面的编辑器。一个人弯着腰坐在桌子前面,头朝着桌子。

Erlang语言之父亲手教你入门

祝你学的快乐 — 如果没有乐趣,一切毫无意义 — 别跟那些工具纠缠不清。想入手,你需要的只是一个文本编辑器和erlang shell。

我的PHP退役了

对于我的个人业余项目和未来的编程创收活动,PHP作为我的一种编程语言的选择,已经从此退役了。作出这个决定并不容易,但是对于我热爱的编程事业的延续,这是必要的。你知道,我可不是仅仅因为热爱编程才做程序员,因为我不会干其它的。

关于并行的一些错误认识

几乎已经有10年了,科技界的专家们一直谈论着摩耳定律的终结。就在本周,《经济学家(Economist)》发表了一篇文章,讲述程序员们如何开始使用函数式编程语言来驾驭如今已成为标配的多核处理器。事实上,这些新式语言的发明人,例如Rich Hickey (Clojure语言) 和 Martin Odersky (Scala语言),都在勤奋的宣扬这些语言如何给了开发人员们更大的能力来处理复杂的并行性编程,来充分利用多核CPU。

三分钟教你轻松掌握 grep 命令中的正则表达式

如何在 Linux 系统和类 Unix 的操作系统中使用带正则表达式的 grep 命令呢?

如何删除超长名称的顽固文件?

在清理旧的系统文件时,可能会遇到这种情况:由于出现一些超长文件,无法用正常的删除操作将其删除。这时可巧妙借好压或系统命令提示符命令来删除。
