PHP 板


LINE

看板 PHP  RSS
※ 引述《st1009 (前端攻城师)》之铭言: : 不好意思,我初学php加设网页後台, : 想询问一些关於php的基本问题>///< : 1. : 请问php的一个变数内部可以融纳下多少位字元,我在查这个时都查到整数(int)的~__~ : 如果我设定 $x = $_POST["x"]; 让使用者输入字串, : 使用者输入字串超出变数可以融纳下的范围php会如何处理? 不同资料型态不能一概而论,也不建议去挑战这种事情。 不过以字串来说.. https://secure.php.net/manual/en/language.types.string.php 「Note: string can be as large as up to 2GB」 字串长度上限是2GB,我想应该大多数情况下你不用担心有人 post 2GB 的东西进来... 阵列在记忆体够的前提下,我平常用的时候百万或千万之类的数量也没啥问题 同样的我想你应该也不用担心有人 post 一千万个栏位进来... 在你碰到这麽大的资料之前,通常你会先因为记忆体不够而整只 script 死掉。 : 2. : 我看网路上有的网址为.php?id=1 : 有的甚至可以直接在URL列登入帐号密码, : 请问这个运作过程为何?为何能实现? : 再自行架设的网站内试图於URL登入,但都失败QAQQQ 「登入」的意思是「记住这个人是谁」,至於是 post 或 get 都跟「记住」这件事无关 记住的方法可以用 session,也可以用 cookie。 程式流程大概会像这样 - 检查帐号密码对不对 - 对了,做一个记住的动作 - 错了,做一个显示错误讯息的动作 当然了,登出也就是「忘掉」,把「我是谁」这件事从 session/cookie 里面砍掉 不过 cookie 是使用者可以乱改的东西,使用时请注意 但是讲到这个用网址登入...假设你可以可以用网址直接登入,那麽 - 浏览器的历史会记住这个帐号密码 - 你後面的人会看到网址列的帐号密码 - Google 可能会记住这个帐号密码 - 我可以搜寻「inurl:www.example.com/login.php」直接爬出一大堆 - 各种奇怪爬网址的 bot 可能会抓到这个帐号密码 不要、不要、不要用 get 传帐号密码 登入时传帐号密码请用 post : 3. : 我看见访间有一种网页攻击方式为xss攻击, : 再自行架设後的留言板中进行测试, : 发现如果我直接输入<script>标签他会产生反应, : 但是当输入: : &#60&#115&#99&#114&#105&#112&#116&#62&#97&#108&#101&#114&#116 : &#40&#39&#104&#97&#99&#107&#101&#100&#39&#41&#60&#47&#115&#99 : &#114&#105&#112&#116&#62 : 却是以字串方式呈现,是否xss攻击无法由10进制html代码,甚至其他代码执行, : 只要我过滤掉了'<'和'>'就不须当心xss了? https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet 这一整页长长的都是 XSS 的方法,里面有很多不用直接打 <> 实际上到底要怎麽防御才完善要 case by case 去看 - html 的内文要靠 htmlspecialcahrs() 去洗 - 如果你还想让使用者自己输入 html,自己挡会挡不完...请参考 html purifier - javascript(咳)通常可以靠 json_encode() 去洗 - 网址...恩...这有点难搞... : 4. : 听说要挡住sql injection 只要使用magic quotes就可以了(? : magic quotes後来不被php自动执行请问是有什麽副作用?如何避免? 不要用 magic quotes,这是上个世纪留下来的失败功能 - 你会拿不到原始的使用者输入资料 - 稍微不小心一点,你就会把「It's Friday」存档成「It\'s Friday」 - 对於有经验的攻击者以及设计良好的 bot,magic quote 毫无用处。 所以 PHP 三年前把这功能拔掉了。 现代推荐的正确做法,是使用 PDO 跟 prepared statement $db = new PDO($dsn, $db_user, $db_password); $stmt = $db->prepare("SELECT nick_name FROM users WHERE uid = ? LIMIT 1"); $stmt->execute([$uid]); // 这边就算 uid 被塞了脏东西也不用怕 $result = $stmt->fetch(); echo is_array($result) ? "我是" . $result['nick_name'] : "查无此人"; -- 莉娜用魔法爆破进入屋内。 劫犯从另一个房间里出现,大叫道︰「你是谁!」 莉娜︰「我是个可疑的女人!」 劫犯无言以对。 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.27.80.218
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1446058193.A.AA3.html ※ 编辑: GALINE (114.27.80.218), 10/29/2015 03:18:26
1F:推 y2468101216: 推这篇 10/29 16:37
2F:推 xdraculax: 真的需要存长字串还是要查一下memory_limit比较好,4年 10/29 21:36
3F:→ xdraculax: 前在某游戏公司改後台,它字串最长只能200KB... 10/29 21:36
4F:→ dlikeayu: nosql+json request parse才是长久之计 10/30 04:06
5F:→ dlikeayu: 跟交易模式比较有关的或真的需要ACID定义的再用SQL 10/30 04:10
6F:推 st1009: 专业详细,感谢您(≧<>≦) 10/30 23:18







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP