或者说,相比MVC有什么优点和缺点?
因为移动端和PC端API共用,想这样做。
html与PHP交互,用Ajax(Restful API)方式。
1.如何保证安全性?
2.有什么要注意的地方?
3.怎样防止被别人爆刷请求?
或者说,相比MVC有什么优点和缺点?
1、安全性
web的东西,安全性是通用的,与你解决问题的方法无关。
比如输入校验,正常的校验是两步的(浏览器、服务器),那么对于API式的设计,是作为直接的请求,服务端对于传入数据需严格校验。
再比如访问权限。API虽然是直接暴露的访问,但是可以提供额外的必须的参数作为访问控制。而该参数的来源、方式则取决于你自己。
2、有什么要注意的地方?
这个问题真的是太广了。
3、爆刷
其实这个可以列入 问题1 中。
假设传入某key值作为额外参数,那么限定该key在一定时间内的访问次数即可。这也仅仅是一个简单的处理方式。
但是如果遇到疑似CSRF的攻击,这个方式是不管用的。
实际上任何一个web应用,都可以通过抓包分析,然后自行解读为 “伪API”(非专用词),然后对其做请求得到结果。爬虫基本上就是这个法。
那么所需要的关注的切入点就是(其实也算问题2 的回答)
1、安全
系统本身的权限等问题的安全策略
来自攻击的安全防范
2、爬虫
反爬虫相关技术。
安全问题:如果你的数据级别比较高的话用https。
防刷:服务器端多IP限制。客服端可以用js做一些加密字符串。也是可以放刷的(但是会被破解,google的passport也是这样做的。只不过他的js算法很难而已)。