作者dreamboxer (陌生人)
看板Flash
标题Re: [问题] 怎麽防止不透过我写的swf.直接传值给php?
时间Wed Jul 16 00:48:45 2008
※ 引述《a149851571 (yem)》之铭言:
: 了解到flash不能和伺服器的资料库连结,只能透过asp或php之类的才能存入资料
: 所以小弟也就开始学习php..但是最近想到了一个问题..
: 假如我写了一个swf,传值给php,php再存入资料库
事实上,你用 swf 呼叫 php,不用反组译 swf 就可以知道你的 php 接收了甚麽参数。
swf 呼叫 php 的方式其实就和你的浏览器打上 php 的网址是一样的。
(就算是用Post的,其实我也可以看到你Post了甚麽,然後用程式去模拟Post动作...)
: 那如果有心人士反组译了我的swf,知道该传什麽给php
: 那就有可能被以作弊的方式,达到他想要的目的(而不是照着我的规则走)
这里有一个重点,作弊的方式,是甚麽方式?
又你想要保护的资料是甚麽?保护的对象是谁?是使用者还是Server?
而不单单是要怎麽保护 "我传给php的值"...
提供一些解法:
1. 我要保护我 php?param= 後面的参数:
最直觉的,在Flash中用一组动态的Key加密後传给php,再由php解密。
只是我觉得反正你那些值到後来也是要显示在Flash里面...何必那麽麻烦...
这只能防防小人,真正要防Hacker还是防不了...
(不过我想Hacker应该也没啥兴趣骇这种无聊的东西)
用 AS3 + Encryption 搜寻应该有一些东西参考,我个人是没作过用AS3加密...
2. 我要保护我的Server不会被人用机器人攻击。(例如讨论版被疯狂灌水)
例用 CAPTCHA (认证图),由Server产生一张图给Flash,
然後要使用者输入图上显示的数字,确认是"人眼"看到图才能继续贴文的动作。
搜寻 php + CAPTCHA 应该有一些免费的解决方案可以用。
3. 我要防止User跳过某些步骤。
利用 Session 将资料写在 Server 端。和写网页一样,翻翻Php的Session那章吧~XD
4. 我要保护我的资料库不会被 SQL Injection。
只要记住一点,所有User传入Server的参数都一定要用Server端的程式(即Php)检查!
例如,我输入了电话,里面不应该出现中文,或是长度太长(电话不可能大於20码)。
资料存进资料库之前要用 mysql_real_escape_string 跳脱字元一下...
这也和写网页程式的观念一样。搜寻 SQL Injection 有一大堆讨论。
5. 我要保护资料传递过程不被窃听。
使用 SSL (即https) 进行网页的动作,但要注意的是,用SSL是防止在"传输过程"
不被第三者(即Server和用户两者"以外")窃听,而不是资料到了Server和用户的"面"
前还加密的(加密解不开是要怎麽看)。Flash可以接收https传进去资料。
以上是在网页里面很常用的方法... 其实对Flash而言其实没啥两样...@@
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.115.171.19
1F:推 ybite:推一下 07/16 00:59
2F:推 a149851571:大大每次讲解都很精辟! 推推推 07/16 01:02
3F:→ a149851571:其实我是看到网路上这个游戏.. 07/16 01:03
5F:→ a149851571:想说如果是flash做的..那安全性一定很薄弱... 07/16 01:04
6F:→ a149851571:很容易就被人作弊!!! 07/16 01:05
7F:→ dreamboxer:看到鬼...我用pcman开竟然不用登入就可以玩游戏了...XD 07/16 01:17
8F:→ dreamboxer:有兴趣可以看看我的这篇: 07/16 01:21
10F:推 ComicMan:大推一下 07/16 02:03
11F:推 no1kk:推... 07/16 11:06
※ 编辑: dreamboxer 来自: 59.115.164.227 (07/21 21:11)