台灣最大程式設計社群網站
線上人數
983
 
會員總數:245608
討論主題:189311
歡迎您免費加入會員
討論區列表 >> 專欄文章 >> 限定輸入英文大小寫與阿拉伯數字
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
限定輸入英文大小寫與阿拉伯數字
價值 : 0 QP  點閱數:691 回應數:0
樓主

站務人員 站長
門外漢
0 1580
542 9
發送站內信

捐贈 VP 給 站務人員
使用者帳號或密碼的輸入,應設定網頁程式只能接受
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"英文大小寫與阿拉伯數字的輸入,並設定拒絕接受其他符號的輸入,以防止駭客在輸入值中夾帶"--", " ' "等符號...

回應者: 只會問問題

上邊這一文字說明來自Allen先生轉載自精誠公司發出的電子報 , 問題是
...如何設定呢?
比如:

登入頁:
(上略)
................
<table width="399" border="0" height="550" background="img/sold.jpg" cellpadding="0" cellspacing="0">
<tr>
<td> </td>
</tr>
<tr>
<td valign="bottom">
<center>
<p> </p>
</center>
<script language=JavaScript><!--
if (navigator.appName.indexOf("Internet Explorer") != -1)
document.onmousedown = noSourceExplorer;

function noSourceExplorer()
{
if (event.button == 2 | event.button == 3)
{
alert("非會員禁止");
}
}
// --></script>
<div align="center">
<center>
<form action=checkpass.asp method="post">
<table border="1" bordercolorlight="#000000" bordercolordark="#666666" bordercolor="#000000">
<tr>
<th align=right>
<td><img src="img/member.gif">
<td>
<input name="id_num" size="10" maxlength="10" value=<%=session("id_num")%> >

<tr>
<th align=right>
<td><img src="img/pass.gif">
<td>
<input type="password" name="Pass" size="10" maxlength="8">
</table>

<input type=submit value="登入" name="submit">
<input type=reset value="RESET ALL" name="reset">
</form>

檢查頁

<!-- #include file=../include/odbc.asp -->
<%
set rs=server.createobject("adodb.recordset")
sql="select * from member where id_num='" & request("id_num") & "' and password='" & request("pass") & "'"
rs.open sql,conn,1,1
if not rs.eof then
response.cookies("login")="true"
response.cookies("nick_name")=rs("nick_name")
else
response.cookies("login")="false"
end if
rs.close
set rs=nothing
conn.close
set conn=nothing
if request.cookies("login")="true" then
response.redirect "goin.asp"
else %>
<script language=javascript>
alert("登入錯誤,請重新登入!!");
history.back();
</script>
<% end if
%>


odbc.asp:

<%
Set conn=Server.CreateObject("ADODB.Connection")
Provider = "Provider=Microsoft.Jet.OLEDB.4.0;"
DBPath = "Data Source=" & Server.MapPath("memberdb.mdb")
conn.Open Provider & dbpath
%>

這樣寫經試驗發現不能擋住特殊字元 , 是否有高手能予以修改???????

2 回應者: Eric 日期: 2002/5/24 下午 04:43:37
sql那字串改成如下可擋住單引號!
sql="select * from member where id_num='" & replace(request("id_num"),"'","''") & "' and password='" & replace(request("pass"),"'","''") & "'"

但我覺得這方面的檢核除了要濾掉單引號外,也可變換檢核方式!如下:
sql="select * from member where id_num='" & replace(request("id_num"),"'","''") &"'"
set rs=conn.execute(sql)
if not rs.eof then
if trim(rs("pass")) = trim(replace(request("pass"),"'","''")) then
response.write "帳號及密碼都是ok!"
else
response.write "密碼有誤!"
else
response.write "帳號有誤!"
end if


本篇文章發表於2002-06-11 00:00
目前尚無任何回覆
   

回覆
如要回應,請先登入.