有人告诉我这很容易,但是查看$ _POST []数组内容的人很容易吗?黑客如何做到这一点,我如何防止它?我应该开始在SESSION []数组中存储更多的项目吗?PHP黑客和POST数组
回答
POST数组完全由客户端传输的数据填充,其中的所有内容都应该是可疑的。因此,不要从回发请求中提取数字并设置某人的帐户余额。
此外,“POST”只是一种HTTP请求,意味着它以纯文本形式发送。不要让客户端通过POST向您发送登录密码,除非您使用SSL封装HTTP流(使用https://并正确配置Web服务器),因为您不控制客户端和服务器之间的网络。主要网站通常不会这样做(出于性能方面的原因),但所有网上银行至少已经这么做了10年。
想那POST数据从与以纯文本HTTP请求的浏览器sended。
能够嗅探您的网络或执行Midle黑客入侵的人可以查看此信息。
使用像Tamper Data这样的Firefox扩展,用户可以在将POST数据发送到服务器之前更改POST数据。
永远不要推送POST数据,始终在服务器端进行验证。
从我对你刚才提问的评论:
黑客可以看到使用容易获得的软件工具,通过你的表单提交的字段和值,然后重新发布到他/她的愿望。
关于MD5:
md5不是一种加密算法,它是一种哈希算法。它会将任何字符串转换为16字节的散列。从理论上讲:
如果你有两个对象,a和b,和MD5(一)== MD5(B),然后== b
如果你有MD5(a)您无法弄清楚一个。
这些与哈希工作时都隐含假设,但他们却从未真正 - 头号显然是不正确的,因为如果你哈希2^16个+ 1个不同的字符串,然后由鸽巢原理,必须有两个具有相同散列的不同字符串。第二个显然不是真实的,因为攻击者可以搜索散列的md5值范围,但对于现代密码安全散列(而不是md5),这是不可行的。
回到你的问题,你可以问客户端的用户密码的MD5散列(你需要客户端JavaScript来计算),但这是一个可怕的想法。如果您对用户的期望是密码的md5,那么这就是攻击者需要知道的全部内容,并且您将以纯文本格式发送它。你可以做的是发送给客户一个随机数。这就像一个挑战。为了让客户证明她知道她的密码,她可以给你发送一个随机数和她的密码连接的散列。这个想法是任何攻击者都不能回答挑战,因为他只知道随机数,并且在发送随机数密码散列之后,对他来说已经太迟了,因为你已经收到了它,并且不期待对该随机数的回答再次。属性2确保他不能从哈希中提取密码。
这很容易被攻击者窃取挑战响应并在客户端做到之前将其提供给您。您可以通过多轮通信组成一个完整的密码系统来获得很多乐趣(反直觉上它实际上可能来回发送哈希并安全地进行身份验证),但是很快您只需实现其他人已经为您完成的HTTPS :)
哈哈哈,听起来我还有很多东西要学。我将不得不考虑随机数并玩弄它。伟大的回应! –
- 1. PHP和道德黑客
- 2. PHP可变黑客
- 3. PHP post数组和卷曲提交
- 4. PHP数组和$ _ POST举止怪异
- 5. 黑客/黑客头
- 6. PHP黑客与安全
- 7. Php复选框POST数组
- 8. PHP POST数组到表
- 9. PHP POST数组未设置
- 10. 黑客PHP与数据库和密码混淆
- 11. 黑客有可能看到原始POST数据吗?
- 12. 从android应用获取POST请求的url和参数。 (黑客应用程序)
- 13. Javascript技巧和黑客
- 14. 发送一个字节数组到PHP脚本作为POST在黑莓
- 15. POST变量数组和filter_input
- 16. 将POST数组传递给php函数
- 17. PHP POST数据数组为空
- 18. 使用php POST和mysql_fetch_数组搜索数据库
- 19. PHP和JavaScript POST
- 20. php POST求和
- 21. 所有PHP文件被黑客攻击
- 22. 如何解决黑客的php表单
- 23. PHP防止会话黑客攻击
- 24. 黑客新闻算法在PHP?
- 25. 团结+ PHP + SSL +的Https +黑客
- 26. 注入黑客php利用信息
- 27. 如何添加一个IE8的CSS黑客到这个PHP数组?
- 28. http post与黑莓
- 29. 发送PHP数组与POST的Android
- 30. 构建一个数组以POST到PHP
如果需要虽然我不能使用某种PHP加密功能?如md5? –
@Howdy你说的是可能的,但几乎肯定不会像你想象的那样。查看我刚刚添加的其他答案(此评论框中没有足够的字符)。 –