我创建了一个angularjs应用程序,它使用php处理数据库查询并强制执行身份验证模式。
当用户登录到应用程序时,他会在php和php中将用户数据提取到会话中。然后angularjs向php页面发出http post请求以读取所获取的数据。 之后,每当用户请求数据时,角度就会向php页面发布帖子。
我正在考虑使用框架以更好的方式进行身份验证和数据库查询。我的安全知识很原始,我担心我的代码会出错。
经过研究后,我发现laravel看起来既简单又容易。 现在我的问题是:
我知道上述问题本身并不是编程问题,但我不知道在哪里问(因为我觉得我无法传达我想要了解的内容/ *这就是为什么关键字在上面提出的问题)。
谢谢
答案 0 :(得分:4)
基于URL(客户端或服务器端)基本上有两种相关的“路由”。 AngularJS有$ routeProvider你可以配置,所以当位置改变时(由$ location处理),正在使用的客户端模板和控制器也会改变。在服务器端,您可能有重定向或“路由”,将URL映射到特定的PHP文件(或Java方法),在目的地,它会解析传入的URL以获取额外的信息/参数。
RESTful是它自己的事情。在一个非常基本的层面上,RESTful接口使用HTTP“verbs / vocuabulary”,如PUT,POST,DELETE,GET(请求头的一部分,它只是请求中任何正文数据之前的数据)具有特殊含义,如更新虽然如果你做了真正的REST我不确定是否允许使用SESSION来维护身份验证,因为它在这种情况下不是完全无状态的(无论如何只是一个学术论点)。重点是你可以使用REST的其他想法或使用一些“RESTful”的实现,它可以用任何语言编写,或者你可以选择不这样做,无论哪种方式,你仍然有控制资源的问题(函数/方法) / data)您想要控制这个问题与选择RESTful或非RESTful不同(如果您想要通过服务器集群等可扩展性的原因继续使用REST,那么您可以遵循这里的指导{{3} })。另外要注意的是,AngularJS中的$ resource提供了一个高于$ http的抽象,专门用于处理restful服务。
恕我直言,你应该寻找两件事
1个php安全/身份验证
2个php黑客攻击/攻击/漏洞
您打算实施的任何安全措施实际上都与您对该安全性的理解一样好。除非时间是一个非常关键的因素,安全性不是那么多,否则我不会相信别人的互联网插件会为我处理身份验证。有一点你没有提到,但我认为值得研究和必要的任何一个真正安全的是SSL。如果您没有对数据进行加密,则总有可能发生中间人攻击的人(有人在提交到数据库时获得明文用户名和密码)或会话劫持(有人获取活动会话的会话ID然后使用作为原始用户)。基本上我建议你继续研究最佳实践,并亲自查看你计划使用的任何代码,以确保你了解它的工作方式以及它为你提供的安全性。
我还想提一下,虽然它有点偏离主题语言,但Java Spring在处理身份验证和处理服务和数据访问方面有一些非常好的东西。如果安全性是一个主要问题,我可能会强烈考虑运行Java服务器(不是说Java从未遇到过它的问题,或者说它自动更安全,但是有很多生产代码经受住了时间的考验)。如果需要大规模分发应用程序,可以使用免费的Tomcat J2EE Server或IBM WebSphere。如果有兴趣搜索Java,Spring,Hibernate(ORM),MyBatis,Data Access Objects。这些是所有部分(一些是可选的)我可以想到你需要在Java中组合一个服务层。本页左侧视频的简介: http://php.net/manual/en/features.sessions.php
SSL也不是银弹,但每一层安全都有帮助。
凯文米特尼克在他的一本书中说,许多地方都有“硬壳糖果安全”(释义),打破外层意味着你可以获得内心所有的糊状善良。我愿意直接回答这种安全问题。根据项目的范围,可能需要让安全专业人员对系统进行渗透测试,以确定是否存在漏洞,以便可以插入漏洞。