Python 板


LINE

code在这 https://tinyurl.com/y68npkms 肥宅大叔最近在自学搞一个留言板 虽然功能测试起来目前看起来好像似乎大概没问题 不过terminal会出现"POST /msg HTTP/1.1" 302 google说重新导向时会吐这讯息 这会有什麽问题吗? 另外请教一下,图片和缩图存成档案比较好还是塞进资料库? 我现在做的是上传後全塞进sqlite的资料库 另问... id=123, kind="test" sql = f"select {kind} from table where id = {id}" cur.execute(sql) data=cur.fetchone()[0] 这样传回的data是我想要的 可是 sql = "select ? from table where id = ?" cur.execute(sql,(kind,id)) data=cur.fetchone()[0] 为什麽这样只传回"test"? 目前用做半套的处理 sql = "select {} from table where id = ? ".format(kind) cur.execute(sql,(id,)) --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.234.23.210 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1610191787.A.F68.html
1F:推 ddavid: sql的问题,是不是这样代入变成SELECT "test" FROM ..., 01/10 05:23
2F:→ ddavid: test是被用常数字串的方式带入了,所以行为会是找到一行符 01/10 05:24
3F:→ ddavid: 合条件的就传回一行"test" 01/10 05:24
4F:→ ddavid: 类似我们常会用到 SELECT 1 FROM ... 的这个技巧 01/10 05:25
可是用select 1 from table...只会吐回一堆1...
5F:→ TakiDog: 你写redirect不就302 01/10 05:37
6F:→ TakiDog: 还是你想回应什麽? 01/10 05:39
7F:推 manmay: 如果想要知道server为啥有这样行为,可以先读http protoco 01/10 08:29
8F:→ manmay: l 01/10 08:29
9F:→ manmay: 了解一下通讯流程 01/10 08:29
有看没有懂...XD
10F:推 mychiux413: 第二种select会保护sql injection攻击,请Google,事 01/11 00:04
11F:→ mychiux413: 实上任何execute都该养成好习惯用法2,即套件内建的p 01/11 00:04
12F:→ mychiux413: laceholder去做请求,而不应该自己去把query组出来, 01/11 00:04
13F:→ mychiux413: 举例来说,法1里,kind="*"的话,你所有栏位就全暴露 01/11 00:04
14F:→ mychiux413: 了 01/11 00:04
reddit有人遇到类似的情况 https://tinyurl.com/yypl85pf 变成要写比较多行重覆的code stackoverflow上找到的资料 https://tinyurl.com/y68p7l3u column和table不能用方法2的方式... 不过这样会有sql injection的隐忧不是? 改用ORM会比较好吗?
15F:推 single4565: flask mega tutorial 有orm的教学,也能找到中文版的 01/11 14:18
16F:→ single4565: 来看 01/11 14:18
17F:推 manmay: 嗯你原始吗码连结挂了 01/11 14:36
18F:→ manmay: 根据维基叙述 post是对伺服器 01/11 14:36
19F:→ manmay: 提交表单或上传档案 01/11 14:36
※ 编辑: OrzOGC (61.221.45.183 台湾), 01/11/2021 14:41:34
20F:→ manmay: 用简单的模型来说,你提交 01/11 14:41
21F:→ manmay: 表单给伺服器上某一资源 01/11 14:41
22F:→ manmay: 但伺服器认为那一个物件是位於 01/11 14:41
23F:→ manmay: 伺服器上的别处,而不是你要求的地方 01/11 14:41
24F:→ manmay: 那你原本程式为啥会这样做, 01/11 14:42
25F:→ manmay: 楼上有人提过了(前面只是大略 01/11 14:42
26F:→ manmay: 解释) 01/11 14:42
27F:推 ddavid: select 1 from table... 吐回一堆1就是它精华的地方啊 01/12 11:24
28F:→ ddavid: 自己Google一下就知道为什麽要用它了 01/12 11:25
29F:→ ddavid: 然後你提到col跟table怕有sql injection的隐忧,但你要先 01/12 11:26
30F:→ ddavid: 想清楚为什麽你的设计上会需要使用者直接输入col或table 01/12 11:26
31F:→ ddavid: 名称?这安全性问题是发生在你的设计上。 01/12 11:27
32F:→ ddavid: 举例来说你有国文 英文 数学 物理四科目成绩是四个栏位名 01/12 11:27
33F:→ ddavid: ,你想要让使用者查询四种科目 01/12 11:28
34F:→ ddavid: 但你设计上为什麽会让使用者填入一个任意字串来决定要 01/12 11:28
35F:→ ddavid: SELECT的col名称?光想就知道问题很大了吧! 01/12 11:29
36F:→ ddavid: 合理的做法应该是让使用者用选择的方式选1 2 3 4,然後程 01/12 11:30
37F:→ ddavid: 式里面将1 2 3 4转为col真正名称才拼贴进query指令,这样 01/12 11:31
38F:→ ddavid: 使用者就没有机会用这介面对col名称做注入攻击 01/12 11:31







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灯, 水草

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

TOP