Tag: php

什么是生成login令牌的最佳方式? 这种身份validation方法容易受到攻击吗?

我必须在基于Lithium(PHP框架)的应用程序中实现login令牌。 两个原因: 我想有一个“记住我”的function。 我还需要在服务器上跟踪login的方法,以便我可以validationNode.js套接字服务器上的身份validation用户,如下所示: 用户请求一个页面 服务器在HTML中返回一个带有会话标记的视图 客户端JS读取令牌并将其发送到node.js服务器,尝试通过Web套接字build立连接。 服务器收到连接请求并validation发送给它的令牌与PHP服务器。 根据结果​​允许或拒绝连接。 所以这是一个两部分的问题,只是为了certificate我不是白痴,因为这个网站的安全性比平常高。 这是创buildlogin令牌的合理方式吗? <?php // String::hash() generates a sha512 (by default) hash. String::hash(time() . $user['username']); ?> 我提出的web套接字authentication系统是否理智? 你能看到出现的任何问题或更有效的方法吗?

在PHP中解释JavaScript

我希望能够运行JavaScript并获得PHP的结果,并想知道是否有一个PHP库,允许我parsing出来。 我的第一个想法是使用node.js,但由于node.js可以访问套接字,文件和东西,我想我宁愿避免这种情况。 理由:我在PHP中进行屏幕抓取,并遇到了很多情况,前端的JavaScript正在生成数据,我想避免编写专门的过滤函数在JavaScript上进行处理,因为需要很多时间。 更一般的情况是直接parsingJavaScript。 Downvoting:我真的不知道这个问题有什么争议,现在的networking爬虫已经知道了,唯一的区别是他们往往不会用PHP编写。 [1] [1] http://blogs.forbes.com/velocity/2010/06/25/google-isnt-just-reading-your-links-its-now-running-your-code/

写一个聊天应用程序

我想知道为数千用户编写聊天应用程序的正确方法是什么。 我只是困惑如何能够平均每秒使用AJAX的服务器或更less,并检查是否有新的logging在MySQL等可接受的服务器负载量。 我目前正在考虑使用jQuery,PHP和MySQL进行编码。 请指教。 你的帮助将不胜感激。

比较PHP和NodeJS之间的BCrypt哈希

对于我正在开发的应用程序,nodejs需要validation由PHP创build的散列,反之亦然。 问题是,在PHP中生成的哈希值(通过Laravel的Hash类,只使用PHP的password_hash函数)在node.js中testing时返回false。 以下的node.js脚本: var bcrypt = require('bcrypt'); var password = 'password'; var phpGeneratedHash = '$2y$10$jOTwkwLVn6OeA/843CyIHu67ib4RixMa/N/pTJVhOjTddvrG8ge5.'; var nodeGeneratedHash = '$2a$10$ZiBH5JtTDtXqDajO6f4EbeBIXGwtcGg2MGwr90xTH9ki34SV6rZhO'; console.log( bcrypt.compareSync(password, phpGeneratedHash) ? 'PHP passed' : 'PHP failed', bcrypt.compareSync(password, nodeGeneratedHash) ? 'nodejs passed' : 'nodejs failed' ); 输出:'PHP失败的nodejs通过',而下面的PHP脚本: <?php $password = 'password'; $phpGeneratedHash = '$2y$10$jOTwkwLVn6OeA/843CyIHu67ib4RixMa/N/pTJVhOjTddvrG8ge5.'; $nodeGeneratedHash = '$2a$10$ZiBH5JtTDtXqDajO6f4EbeBIXGwtcGg2MGwr90xTH9ki34SV6rZhO'; print password_verify($password, $phpGeneratedHash) ? 'PHP passed' : […]

节点的Socket.io链接将如何在服务器不是本地主机(wamp / xampp)

我是新来的套接字会议,但我知道它将如何在wamp / xampp本地主机。 但是当我移动到托pipe的服务器。 不起作用。 <script src="http://localhost:3000/socket.io/socket.io.js"></script> 在wamp / xampp上面这个工作。 但在托pipe服务器中找不到。 我应该给src什么。 我的主机是:aaa.bbb.com,其端口是8803或bbb.com,端口是8803。 我试过的方法是包括像 <script src="/socket.io/socket.io.js"></script> <script src="http://aaa.bbb.com:3000/socket.io/socket.io.js"></script> <script src="http://bbb.com:3000/socket.io/socket.io.js"></script> 我的服务器端代码是 var express = require('express'); var app = express(); var socket = require('socket.io'); var server = require('http').createServer(app); server.listen(3000); var io = socket.listen(server); var async = require('async'); var mysql= require('mysql'); var pool = mysql.createPool({ host : […]

集成节点js和套接字IO与codeigniter

如何将node.js和套接字IO集成到代码点火器中。 <script> // create a new websocket var socket = io.connect('http://localhost:8000'); // on message received we print all the data inside the #container div socket.on('notification', function (data) { var usersList = "<dl>"; $.each(data.users,function(index,user){ usersList += "<dt>" + user.user_name + "</dt>\n" + "<dd>" + user.user_description + "\n" + "<figure> <img class='img-polaroid' width='50px' src='" + user.user_img + […]

Facebook如何通知和即时显示新的评论或如何Stackoverflow做到这一点?

我是一名PHP开发人员,标题基本上就是这么说的。 不过,我希望得到更深入的信息,因为我开始对我工作的项目stream程应该如何去感到困惑。 对于(networking)应用程序,我需要实现一个像Facebook这样的function,通知用户有关回复/评论,并立即显示这些内容。 我想我可以使用长轮询ajax请求,但这似乎并不是一个很好的解决scheme,因为通知从来没有真正的即时和资源沉重。 所以我应该使用某种forms的套接字,如果我理解正确,Node.Js将是一个不错的select。 所以根据最后的假设,我现在对工作stream程感到困惑。 我想到了两个可能的解决scheme: 1)在我看来,如果我会使用Node.Js,我可以跳过使用PHP,并只在Node.js基础的应用程序。 2)或者我可以使用PHP作为基础,只能使用Node.js通知用户,并即时显示消息,但使用PHP和Mysql保存数据。 这两种可能性混淆了我,我不能确定什么是“最好”和最干净的方式。 我没有太多的Node.js经验,玩了一段时间。 但是在Node.js中pipe理和保存数据似乎很难,所以我想出了选项2。 我知道Facebookbuild立在PHP,所以我假设他们通过PHP保存数据,并通过节点通知/立即显示答复和评论。 有人可以帮我解决这个问题吗? 提前致谢! 编辑:我只是注意到,Stackoverflow做类似的事情。 我在左上angular收到一个通知,在我的问题下面有一个“新问题答案”的框。 我对使用的技术真的很感兴趣。

使用socket.io node.js和传入消息的通知系统的体系结构实现和devise

免责声明 我以前没有用过node.js 我以前没有使用过socket.io 我正在考虑实施Google Plus,Facebook,StackOverflow风格的通知系统。 我不是一个没有经验的开发人员,最终我会弄清楚这一点,但我只是在寻找一个正确的方向。 我想要的是浏览我的网站的用户在浏览会话期间收到新消息时得到通知。 目前,我的所有消息都存储在一个表中。 | id | messageSubject | messageBody | hasRead | readDate | sentDate | sentToUser | sentFromUser | | 1 | HelloWorld | Nada | 0 | `null` | `null | 1 | 10 | 现在,我的所有消息都从几十个不同的来源中检索出来。 消息可以由第三方通过APIinput 消息从发送网格中拉出 消息可以通过私人消息控制器发送。 等等 我想要的是有一种方式能够通知用户收到新消息时。 我很高兴以任何方式重构我的代码,这使我有可能通知我的node.js当我收到插入消息,如果这是我需要做的。 但是我不确定从哪里开始。 我的问题是,我的所有消息都通过几十个不同的来源input到mysql中,我的Insert语句在很多方面。 所以我只是不知道继续下去的最好方法。 谢谢。

PHP的Socket服务器与node.js:networking聊天

我想要使​​用长时间的HTTP请求(Comet),ajax和websockets(取决于使用的浏览器)来编写HTTP WebChat。 用户数据库是在MySQL中。 聊天是用PHP编写的,除了也可以用javascript(node.js)写的聊天stream本身: 我不想为每个用户启动一个php进程,因为在这些php孩子之间没有好的方式发送聊天消息。 所以我想写一个自己的套接字服务器在PHP或node.js应该能够处理超过1000个连接(聊天用户)。 作为一个纯粹的Web开发人员(PHP)我不太熟悉套接字,因为我通常让Web服务器关心连接。 聊天消息不会被保存在磁盘上,也不会保存在mysql中,而是保存在RAM中作为数组或对象以获得最佳的速度。 据我所知,在单个php进程(套接字服务器)中,无法同时处理多个连接,但是您可以接受大量的套接字连接,并在循环中连续处理它们(读取和写入;传入消息 – >写入所有套接字连接)。 问题是,最有可能是一个滞后的约1000用户和MySQL操作可以放慢整个事情,这将影响所有的用户。 我的问题是:node.js可以处理性能更好的套接字服务器吗? Node.js是基于事件的,但我不确定它是否可以同时处理多个事件(不需要multithreading?),或者只有一个事件队列。 有了事件队列,它就像php:用户之后的进程用户。 我也可以在每个聊天室产生一个php进程(用户less得多),但是afaik有单线程的IRC服务器,它们也能够处理成千上万的用户。 (用C ++或其他)写的,所以也许这也可能在PHP中。 我宁愿使用PHP,而不使用Node.js,因为那样的话,这个项目将只是php而不是编程语言的混合体。 但是,如果节点可以同时处理连接,我可能会select它。

如何区分socket.io聊天中的Symfony用户angular色/组

我一直在玩socket.io的聊天,我有一个问题:如何区分pipe理员用户和聊天室中的普通用户? 我希望pipe理员拥有踢人和禁止的权力,但我的用户不能。 我正在使用Symfony来开发我的应用程序,我想用聊天用户的用户数据库。 我为我的Symfony应用程序的用户使用FOSUserBundle 。 他们分成多个组,所以我有admin组和其他人。 admin组具有ROLE_ADMIN ,这意味着其中的每个用户都具有该angular色。 这是pipe理员组,并且该组中的每个用户都应该有权禁止,踢,静音等聊天室中的其他用户。 为了在聊天中使用我的Symfony用户,我一直在阅读Redis以获得他们的会话,但是我不确定如何区分我的pipe理员用户和普通用户。 我怎样才能防止普通用户向服务器发出一个用户无法访问的请求? 因为任何人都可以提出请求,但是如果他们来自存储在Apache服务器上的MySQL数据库中的用户, 我怎么能validation这些请求呢? 如果不是Symfony,那么这可以在一个普通的PHP应用程序中完成? 最后,pipe理员如何定义并不重要,而是如何将他连接到节点服务器以及如何使节点服务器与我的用户数据库一起工作。 我有一个简单的encryption和发送用户的数据到节点服务器,然后在那里解密的想法。 只有两台服务器知道私钥,所以即使客户端掌握了encryption的数据,也不能向另一个客户端发出请求。 我可能会做一些IP检查和时间戳。 然后可以使用节点服务器上的解密数据来说明用户是否是pipe理员,并允许他发送某些请求。 这是一个好主意还是有更好的办法?