Mryqu's Notes


  • 首页

  • 搜索
close

我的IntelliJ IDEA配置

时间: 2014-11-29   |   分类: Tool   IntelliJ     |   阅读: 8 字 ~1分钟
安装完IntelliJIDEA,我首先切换到64位模式: 安装文件生成的快捷方式默认指向的是idea.exe,更改为idea64.exe。 更改默认内存配置:修改IntelliJ"bin"目录下的idea64.exe.vmoptions文件。 “-Xms"和”-Xmx"定义了Java分配给IntelliJ的最小和最大堆空间,将其更改为"-Xms256m"和"-Xmx1600m" 启动IntelliJ IDEA,通过File->Setting菜单做如下修改: 更改编译器的构建过程堆大小为1024 设置代理为总动检测

Eclipse用户IntelliJ IDEA入门指南

时间: 2014-11-29   |   分类: Tool   IntelliJ     |   阅读: 57 字 ~1分钟
除了IntelliJ IDEA帮助文档 (https://www.jetbrains.com/idea/help/intellij-idea.html),发现一个IntelliJIDEA不错的入门教程: Getting Started with IntelliJ IDEA as an Eclipse User(http://zeroturnaround.com/rebellabs/getting-started-with-intellij-idea-as-an-eclipse-user/) Introduction: Why IntelliJ IDEA? Chapter I: Getting your first IntelliJ IDEA project set up Chapter II: Getting comfortable with IDEA’s Keymap, Navigation and Settings Chapter III: Getting productive with Tests, Deployments and Artifacts Chapter IV: Summary, Conclusion and Goodbye Comic ;-) 其他参考: IntelliJ Idea 常用快捷键列表

玩一会IPython Notebook

时间: 2014-11-26   |   分类: Python     |   阅读: 18 字 ~1分钟
晚上想写两行python代码,懒得打开eclipse,也不想玩SublimeText2,就试用了一下Anaconda带的IPython Notebook。 支持函数自动补全,很多快捷键,功能还真不错!以后打算作为主力用了。 资料: IPython Notebook简介1 ipython notebook——超级强大的工具 第三课 Ipython & Ipython Notebook IPython: Python at your fingertips

[OpenUI5] logging

时间: 2014-11-16   |   分类: FrontEnd     |   阅读: 4 字 ~1分钟
jQuery.sap.log是客户端Javascript日志API。 通过上图可知,其日志级别分别为ALL、DEBUG、ERROR、FATAL、INFO、NONE、TRACE和WARNING,默认日志级别为ERROR。 如果要显示所有日志信息,可以执行: jQuery.sap.log.setLevel(6)

了解Google Closure Tools

时间: 2014-11-15   |   分类: FrontEnd     |   阅读: 55 字 ~1分钟
hello一个html5-openui5项目,公司的编译系统在googlecc.xml(ant脚本)报了一个错,用googlecc做关键词搜了半天没弄清是什么东西,后来才发现是GoogleClosure Compiler。 不同于个人的小项目,企业级Web应用里面可能存在大量的Javascript代码。JS文件很多,文件块头还不小。不管是静态引入还是GoogleClosureLibrary/require.js这种模块化动态异步加载,下载时间长了,都会给Web用户带来不好的感知性能体验。很多Javascript压缩工具可以帮助减小JS文件大小,GoogleClosure Compiler就是其中一款。 谷歌2009年开源了其内部使用的JavaScript开发工具,Google Closure Tools,希望帮助程序员更高效地开发出富客户端Web应用程序。该工具集由如下工具组成: Closure Compiler:该优化器将JavaScript优化成紧凑、高性能的代码。它通过去除无用死代码、空格和注释、缩短长的局部变量名等方法压缩代码,检查语法、变量引用和变量类型,并对常见的JavaScript陷阱给出警告。 Closure Library:功能广泛的,经过良好测试的,模块化的,跨浏览器的JavaScript库 Closure Templates:客户端和服务器端模板系统,可以有助于动态生成可重用的HTML和UI元素。ClosureTemplates摒弃了一个页面使用一个(大)模板,而是针对单个小组件使用(小)模板,以便复用。该模板可生成JavaScript或Java代码,因此同一模板可在客户端或者服务端使用。 Closure Linter:按照《谷歌JavaScript编程风格指南》 里面的指导方针对JavaScript代码进行编程风格检查和修复的工具 Closure Stylesheets:支持很多谷歌扩展的增强格式表语言系统。可以定义和使用变量、函数、条件,以使格式表可读性增强、更易于维护。内建的工具可以将其编译成标准CSS。 阅读列表: 闭包:权威指南(Closure:The Definitive Guide) 部分翻译 前言 1 2 3 4 5 Google Closure Compiler –js压缩优化 Closure Compiler vs. YUICompressor 应用 closure compiler 高级模式 Closure Compiler 高级模式及更多思考 知乎为什么要选择 Closure Library 来作为 JavaScript 库,而不选择更流行的 jQuery 之流呢? Google Closure Library介绍

[OpenUI5] JSView的createContent和Controller的onInit孰先孰后?

时间: 2014-11-14   |   分类: FrontEnd     |   阅读: 259 字 ~2分钟
首先在这个两个函数设置断点,很容易知道JSView的createContent先于Controller的onInit被调用。 通过sap.ui.core.mvc.View源码片段可知,View的_initCompositeSupport函数中首先调用createAndConnectController函数创建Controller,之后调用的onControllerConnected函数会调用createContent函数,最后调用的fireAfterInit函数会触发Controller的onInit函数回调。 View.prototype._initCompositeSupport = function(mSettings) { // init View with constructor settings // (e.g. parse XML or identify default controller) // make user specific data available during view instantiation this.oViewData = mSettings.viewData; // remember the name of this View this.sViewName = mSettings.viewName; // remember the preprocessors this.mPreprocessors = mSettings.preprocessors || {}; //check if there are custom properties configured for this view, //and only if there are, create a settings preprocessor applying these if (sap.
阅读全文 »

[OpenUI5] 十分钟了解sap.ui.table.Table

时间: 2014-11-12   |   分类: FrontEnd     |   阅读: 1115 字 ~6分钟
转发一篇SAP community network的好帖子:http://scn.sap.com/docs/DOC-54075 Introduction sap.ui.table.Table is commonly used inOpenUI5 desktop application. Many questions (related to thiscontrol) that are posted in this group, it is evident thatdocumentation for this control is lacking and we (developers) haveto dive deep into debugging its source code to figure things out.It is fortunate that Javascript source code is always available;modern browsers provide debugging capability and personally, I amfortunate to have the opportunity to work with someone in SAPUI5team while using this control.
阅读全文 »

Web安全

时间: 2014-11-11   |   分类: Service+JavaEE     |   阅读: 78 字 ~1分钟
学习OpenUI5程序员指南里关于Web安全的章节,在网上也搜了一下资料,下面是这次的学习笔记。 浏览器安全 跨站脚本攻击(Cross-Site Scripting, XSS) XSS指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。例如,如果某些无需登录即可访问的公共页面区域有提交表单,攻击者可以在提交内容里面注入恶意javascript脚本(原理类似与SQL注入攻击),提交后的页面内容可能就含有这样的可执行恶意脚本。当其他登录用户访问这个页面后,就有可能泄漏自己的会话cookie信息。一般的防御手段是使用HTMLSanitization工具对用户输入信息做检查,过滤其提交内容;或者cookie记录登录ip,仅允许该ip使用此cookie。 点击劫持(clickjacking) 点击劫持指的是通过欺骗用户点击看似正常的恶意网页来获得机密信息或远程控制其电脑。例如,攻击者想要攻击某网页,可以发布一个网址与原网址及其近似的恶意网页,恶意网页通过iframe嵌入原网页。当用户被欺骗到恶意网页,界面和操作都与原网页一模一样,但操作实际上是与恶意网页交互。另外一个例子是攻击者发布一个恶意flash游戏,当用户玩游戏时,点击会被引导到恶意链接上,进而控制用户的摄像头和麦克风,用户的个人隐私遭到泄漏。一般的防御手段是Framebusting:正常网页中添加X-FRAME-OPTIONS=DENY(拒绝任何域加载)的http头,以及通过javascript脚本判别顶级frame是否被修改并将覆盖在自身上面的"恶意"frame重新定向会self.location。 HTML5 localStorage 所有浏览器都提供本地存储API,可用于存储有限数量的数据。仅运行在与存储数据相同域上的JavaScript代码可被执行进行数据访问。浏览器的本地存储不是安全存储,所以仅能用于存储静态数据,不应该存储应用数据。 WEBGL 越来越多的浏览器默认支持WEBG,WEBG允许访问计算机的底层图形API,这可能导致底层漏洞。 WebSockets WebSockets为web应用的客户端/服务器通信提供了新的方式,但很多浏览器厂商的第一版WebSockets实现就暴露了很多安全问题。RGC6455中的WebSockets标准化已经稳定,并且Chrome16、Firefox 11和IE10都实现了WebSockets。即使浏览器自身的WebSockets实现被证明是安全的,使用WebSockets时客户端仍需要额外的安全措施。 Postmessage/Onmessage postMessage允许浏览器窗口之间的跨域通信,这可能会导致安全问题。应用程序应该检查消息的发送域并仅处理来自受信域的消息。 会话安全 HTTP通信是无状态的和非加密的,客户端和服务器之间的数据传输是不安全的,因此有必要使用SSL进行加密,并使用cookie或URL地址重写进行会话处理。即使使用SSL对数据传输进行加密,仍有可能发生会话劫持。跨域请求伪造和会话固定攻击就是这类攻击中突出的两个例子。 WEB认证基础知识 用户访问需要认证的网站。 用户提供一个用户名和口令进行验证。 网站验证用户口令,如果通过,则准许用户登录进入,并将一个cookie提供给用户的浏览器。此cookie用于唯一的标识会话。 用户继续访问网站。在用户请求一个新网页时,浏览器都会发送cookie和用户请求,提醒Web服务器:该请求是前面的认证连接的一部分。在多数情况下,Web开发人员和网站管理员都会使用HTTPS加密来保护这个过程的第二步,他们都知道如果其它人员能够访问其他用户的用户名和口令,就可以轻易地获得访问权。在许多情况下,他们会转而使用一个不加密的HTTP连接,以便于实现Web通信的其余部分,其中也包括cookie的交换。 火羊(Firesheep) Firesheep是一个火狐(Firefox)插件,它在不安全的无线网络中自动操作会话劫持攻击。这个插件(plug-in)本质上是一个数据包嗅探器,它监测并分析Wi-Fi上终端用户之间的流量,并获取正在交换的cookie。西雅图的软件开发工程师EricButler研发了Firesheep并在2010年10月的ToorCon黑客会议上宣布了它的发行。Firesheep非常容易使用,下载插件,登陆公用的WIFI点,按一下按钮就可以获取网络中各种人的用户名和图像(例如:Facebook、Twitter、Flickr、bit.ly、Google和Amazon),双击图像攻击者就可以用受害人的身份登陆了。一般的防御手段是仅允许通过SSL来发送cookie;要限制能够利用cookie的应用程序;限制cookies仅能使用HTTPS。 跨域请求伪造(Cross-site request forgery, CSRF或XSRF) 跨域请求伪造指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,在用户毫不知情的情况下以用户名义伪造请求发送给受攻击站点,从而在并未授权的情况下执行在权限保护之下的操作。例如,恶意网页中有转账请求的恶意链接,当有用户被骗访问网站并点击了带有恶意链接的图片或广告,该请求会附带用户浏览器的cookie一起发往银行。大多数情况下,该请求会失败,因为它要求用户的认证信息。但是如果用户当时恰巧刚访问他的银行后不久,他的浏览器与银行网站之间的会话尚未过期,浏览器的cookie之中含有用户的认证信息。这时,转账请求就被处理。一般的防御手段是验证HTTP的Referer字段;在所有页面加入同步令牌模式(Synchronizer tokenpattern)并要求在请求地址中添加令牌并验证;在强调安全的操作前重复用户认证。 会话固定攻击(session fixation) 会话固定攻击是利用服务器的session不变机制,借他人之手获得认证和授权,然后冒充他人。例如,攻击者访问http://vulnerable.example.com/ ,并从服务器响应(Set-Cookie:SID=0D6441FEA4496C2)获得会话ID,他发送给受害者一个链接http://vulnerable.example.com/?SID=0D6441FEA4496C2。受害者登录的话,会使用这个固定会话标识符SID=0D6441FEA4496C2。攻击者这时访问http://vulnerable.example.com/?SID=0D6441FEA4496C2就可以不受限地访问受害者的账户了。一般的防御手段是用户登录后更改会话ID;仅接受服务器生成的会话ID;超时或退出登录后删除会话;强调安全的操作使用SSL会话ID;每次请求更新会话ID。 参考 Busting Frame Busting: a Study of Clickjacking Vulnerabilities on Popular Sites 使用 HTML5 WebSocket 构建实时 Web 应用 应用 HTML5 的 WebSocket 实现 BiDirection 数据交换 HTML5 postMessage 和 onmessage API 详细应用 urlrewrite使用小结 怎样应对会话劫持:以Firesheep为例 CSRF 攻击的应对之道 Spring Security如何防止会话固定攻击(session fixation attack) 黑客攻防技术宝典: Web实战篇

开玩OpenUI5

时间: 2014-11-09   |   分类: FrontEnd     |   阅读: 7 字 ~1分钟
OpenUI5是SAP推出的开源HTML5Javascript用户界面库,网址为http://sap.github.io/openui5/index.html 前不久SAP宣布我司成了签署OpenUI5企业贡献者许可协议的第一个组织(BjornGoerkee的Tweet),从此我司产品中的Flex就要纷纷下岗,让位HTML5了。 据说SAP在UI框架上的选择纠结了十多年了,甚至投奔过微软的silverlight,后来才成为HTML5的拥拓。 我司的富客户端技术用过Swing,中间打算换成Eclipse RCP,再后来决定全面采用Flex技术,兜了一圈又一圈,花了时间费了钱,最后决定采用HTML5。 虽然各浏览器厂商还在HTML5上进行利益博弈,W3C与WHATWG分道扬镳,Facebook和Linkedin抛弃HTML5转投原生App应用,但是为了将我司的产品转向云应用,HTML5对于我们这种企业级应用来说还算是很靠谱的了。 今天下载了openui5-sdk-1.24.3.zip,直接解压到Tomcat的webapps目录下,开始学文档做demo。

JavaScript中的点符号和方括号符号

时间: 2014-11-08   |   分类: FrontEnd     |   阅读: 30 字 ~1分钟
JavaScript中对象可以通过点符号(dot notation)或方括号符号(square bracketnotation)访问属性。 a = {}; b = function() { alert("Thanks!"); }; c = function() { alert("Bye!"); }; a["Hello"] = b; a.bye = c; a.hello(); a.bye(); 两者相同之处: 当属性不存在时返回undefined。两者的区别是: 点符号访问方式更快,代码阅读起来更清晰。 方括号符号访问方式可以访问包含特殊字符的属性,属性选择可以使用变量。JSLint会对方括号符号访问进行告警。
39 40 41 42 43 44 45 46 47

Programmer & Architect

662 日志
27 分类
1472 标签
RSS 订阅
GitHub Twitter FB Page
© 2009 - 2023 Mryqu's Notes
Powered by - Hugo v0.120.4
Theme by - NexT
0%