我不确定如何说出这个问题,如果它与其他内容重复,请提前道歉.
我想要理智地检查我是如何保护我的扭曲应用程序并认为我已经做得很好,但是自从我编写了使用原始或托管套接字的任何东西以来已经过去了十多年.
身份验证事务:客户端连接并立即使用16个字符的十六进制字符串发送质询响应.客户端获取用户名和密码,密码转换为sha1(salt + sha1(密码)),凭据以{username,password}的形式发送回服务器.在服务器端,身份验证执行标准查找模式(如果用户存在并且密码等于输入然后授予).
如果用户和客户端之间的连接丢失,则协议类将自身标记为脏,并将自身与用户对象断开连接.在此之后的任何时候,为了再次访问用户对象,客户端必须使用新的盐重复身份验证过程.
我错过了什么吗?对于基于字符流的协议,是否有更好/更安全的方法?
作为一个有趣的侧面项目,我自己帮助学习另一个PHP MVC框架,我一直在编写Reversi/Othello作为PHP和Ajax应用程序,大多是简单的东西.我决定不使用多维数组有很多原因,而是有一个线性数组(在这种情况下是64个元素长)和几个从坐标转换为整数的方法.
所以我很好奇,有没有其他可能更快的算法将整数转换为坐标点?
function int2coord($i){
$x = (int)($i/8);
$y = $i - ($x*8);
return array($x, $y);
}
//Not a surprise but this is .003 MS slower on average
function int2coord_2($i){
$b = base_convert($i, 10, 8);
$x = (int) ($b != 0 ? $b/8 : 0); // could also be $b < 8 for condition
$y = $b % 10;
return array($x, $y);
}
Run Code Online (Sandbox Code Playgroud)
为了后人的缘故,我为coord2int写的方法
function coord2int($x, $y){
return ($x*8)+$y;
}
Run Code Online (Sandbox Code Playgroud)
更新:
所以在奇怪的土地上,结果不是我所期待的,但使用预先计算的查找表主要表现为最快,猜测交易记忆速度总是赢家?
一个很好的熟人和过去的同事突然打电话给我,并给了我一份我真的不能忽视的合同.他确信我会很好地完成并立刻获得c#(过去的经验在 - > c/c ++/PHP/Python/Lua).
这个问题符合我的另外两个问题:
有没有人使用apc_define_constants或hidef vs使用define.最新版本中的任何真正的好处或可能的错误?
apc-define-constants - http://us2.php.net/manual/en/function.apc-define-constants.php
我的咨询公司接管了一个相当繁忙的Django应用程序,该应用程序通过Redis EXCEPT处理Django.session数据的缓存.唯一可用的信息是提交消息,例如"通过Redis还原会话存储".
我已经测试了存储在Redis中的Django会话,这似乎是一个很好的解决方案,但是我很犹豫要把它推到管道上,因为我想知道为什么原来的dev会拉它.
正如我理解Django会话逻辑一样,它只是一个关键:值存储,其中value是带有相关会话数据的pickle Python对象.
精简版:
使用Redis处理Django.session数据的缺点是什么?
在每个dart文件的顶部编译的javascript是这个奇怪的列表.
function dart() {
this.x = 0;
delete this.x;
}
var A = new dart;
var B = new dart;
var C = new dart;
var D = new dart;
var E = new dart;
var F = new dart;
... etc etc ...
var Z = new dart;
Run Code Online (Sandbox Code Playgroud)
我扫描了其余的代码,寻找.A(或任何其他字母)没有运气.这究竟是为了什么目的?最终的结果是dart()函数/构造函数的AZ实例是空类对象,但有什么用?
像/[A-Z]{1}\./我一样使用正则表达式找到一些字母实例用属性装饰,然后所有27个字母都通过这个函数运行:
function convertToFastObject(properties) {
function MyClass() {
}
MyClass.prototype = properties;
new MyClass();
return properties;
}
;
A = convertToFastObject(A);
B = convertToFastObject(B);
C = convertToFastObject(C);
... etc …Run Code Online (Sandbox Code Playgroud) 我想知道是否有人知道我可以将完全形成的HTTP正文(标题和内容)发送到Web服务器的工具.到目前为止,我得到的最好的是腻子,但我希望能看到@并编辑有效负载,然后单击按钮并发送它.(我可能会在几分钟内写出这样的东西,但希望有一个已经完成和半抛光的应用程序.
上下文:我正在测试一个多部分/相关的soap请求,并试图想出一些想法来编辑在其旅程中某处被吃掉的有效载荷的一个元素.
注意:不能使用Javascript或iframe.事实上,我不能相信客户端浏览器可以做任何事情,除了超基础.
我正在重建一个传统的PHP4应用程序作为MVC应用程序,我的大多数研究目前都集中在Pylon的框架上.
我遇到的第一个奇怪的问题之一是我过去通过使用iframe或更好的javascript来解决的问题是显示动态的"小部件"集合,就像典型控制器的索引视图的摘要视图一样.
可视化我的问题的最佳方式是查看Google的个性化主页.他们用Javascript解决了这个问题,但是对于我的场景,javascript和基本XHTML之上的任何东西都是不可能的.
我开始研究的一个想法是让我的Frontpage控制器为当前激活的小部件轮询数据库或其他服务,然后获取元组/ dicts列表,动态实例化每个控制器并构建渲染子视图的列表/字典并传递那个到首页视图,让它解决问题.
所以使用peusudo代码:
Get request goes to WSGI
WSGI calls pylons
Pylons routes to Frontpage.index()
Frontpage.index()
myViews = list()
for WidgetController in ActiveWidegets():
myViews.append(subRender(WidgetController, widgetView))
c.subviews = myViews
render(frontpage.mako)
Run Code Online (Sandbox Code Playgroud)
关于subRender的奇怪的一点
__import__(当前硬编码到项目的命名空间:()我觉得必须有一个更好的方法或者可能已经在WSGI中实现的机制或更好的Pylons来实现这一点,但到目前为止,我发现最接近的是这种实用方法:http: //www.pylonshq.com/ docs/en/0.9.7/modules/controllers_util/#pylons.controllers.util.forward但是N为了获得集合视图,在pylons之上构建pylons实例似乎有点疯狂.
networking ×2
php ×2
python ×2
.net ×1
c# ×1
cherrypy ×1
cryptography ×1
dart ×1
django ×1
encryption ×1
http ×1
math ×1
optimization ×1
performance ×1
pylons ×1
redis ×1
soap ×1
sockets ×1
twisted ×1