作者 主題: [問題]網頁傳值  (閱讀 30802 次)

0 會員 與 1 訪客 正在閱讀本文。

梁楓

  • 俺是博士!
  • *****
  • 文章數: 6220
    • 檢視個人資料
[問題]網頁傳值
« 回覆 #30 於: 2003-06-26 19:24 »
引述: "paulso"
不經過處理會有很多一樣的東西 insert 入 資料庫
全部一樣,waste server resources


至少應該
1. 檢查資料大小:
你設定varchar(26)的東西,應該最大只有26
2. 濾掉 < > ' '  ; 等符號

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[問題]網頁傳值
« 回覆 #31 於: 2003-06-26 19:25 »
引用
我有一個變數 var,我執行的內容是
insert into tablename (var)values('$var');
這樣子,$var不經過在處理,會發生什麼事?試試看吧


除了 paulso 所說的外....
還要顧慮 SQL injection 的問題...
我用來查中共xxx登計的公司資料....全都露...
不要問我網址....國內也是有問題的. 不過現在較好了
每次只要看到 .asp 或 .aspx 的網頁都給他試一下...

paulso

  • 俺是博士!
  • *****
  • 文章數: 1966
    • 檢視個人資料
[問題]網頁傳值
« 回覆 #32 於: 2003-06-26 19:44 »
引述: "梁楓"
引述: "paulso"
不經過處理會有很多一樣的東西 insert 入 資料庫
全部一樣,waste server resources


至少應該
1. 檢查資料大小:
你設定varchar(26)的東西,應該最大只有26
2. 濾掉 < > ' '  ; 等符號

小弟很笨,未必拿到您的意思,獻醜的說...
是否等於對症下藥?

duan

  • 榮譽博士
  • 活潑的大學生
  • ***
  • 文章數: 253
    • 檢視個人資料
[問題]網頁傳值
« 回覆 #33 於: 2003-06-26 22:22 »
關於這種東西怎麼防, 最簡單的方式就是不允許暱名 post , 只要一檢查
session 裡的 id 是否存在就行了.

其次, 如果要開放暱名 post , 可以搭配 cookie 的方式來檢查. 當然這樣說
是有些粗糙, 如果沒記錯, phorum (php 的套件) 有防止連續 post 的行為.
不過印像中它還會進資料庫比對一些東西, 比較耗費資源.

另外有大大提到 sql inject 的問題. 這是比較進階的方式, 很多人對於 sql injection
有些誤解, 弟前一陣子在 bbs 上的 php 連線版有過一些討論, 不過當然不是
什麼很精闢的見解, 不過就是把一些英文翻成自己的話表達出來而已. 有興
趣的可以到 php.net 的線上文件中, 找 security 那一節:
http://www.php.net/manual/en/security.database.php

另外關於 session 和 cookie 的關係, 正好弟也和網友有在討論這部份的問題,
也是在 bbs 上 php 連線版, 有興趣也可以看一看. 不過內容不脫 php.net 上:
http://www.php.net/manual/en/ref.session.php
這一段內容.  對於 php session 的機制有清楚的說明.   :)

對這些有興趣的歡迎一起討論, 希望不會和 bbs 上一樣,  劈頭就罵人,
說別人不對, 實在是有點傷感情.   :)