10秒目をつむったら…

タイトルのとおりなのですが、
テキストボックスに英数字を
入力するとエラーが出るプログラムを考えています。

その他記号「" ' < >」は変換すれば、
問題ありませんが、今回作成するプログラムは、
SQLの日本語完全一致のみの検索なので英数字は全て排除したい
と考えています。

ご教授お願いします。

A 回答 (3件)

補足の項に「今回の英数字(小文字含む)の入力を拒否するという趣旨は、


「あらゆるコマンド入力を阻止する。」点にあります。」
とありますが、若しかしてSQLインジェクションを防止したい、との意図
ですか?
入力の文字列を心配するあたりからすると、入力の文字列を使ってSQL文を
組み立てようとしていませんか?
プレースホルダを使えばSQLインジェクションを簡単に防止することが
できます。DBIならプレースホルダをサポートしています。

プレースホルダを知らないのでしたら、SQLインジェクションと共に
「プレースホルダ」や「バインドパラメータ」などでネット検索してみて
下さい。

この回答への補足

ご回答ありがとうございます。
もちろん、SQLインジェクションも阻止するつもりです。
タグ打ちやその他、Perl、SSLコマンドの阻止するためでもあります。

現在は
if ($name =~ /{a-zA-Z}/}{
print "エラーが発生しました。"\n;
}
else{

といったふうな処理にして記号は変換して対応しようかと
考えています。
「プレースホルダ」や「バインドパラメータ」などネット検索して
みます。

補足日時:2007/02/02 23:55
    • good
    • 0
この回答へのお礼

検索しましたが、有効なページ(トップから3ページ)
はありませんでした。SQLインジェクションとともに
検索するとこのページがトップのほうに…。

お礼日時:2007/02/05 22:10

不正ではない場合だけSQLを投げれば希望通りなのでは?

この回答への補足

おっしゃっている意味が理解できました。
(Perl)で不正かどうか返して、SQLを実行するということですよね?
主語が省略されていてちょっとわかりずらいのですが…。

補足日時:2007/02/02 20:05
    • good
    • 0

正規表現で文字列検索(英数字)


戻ってきた文字列が有る場合=不正
という流れで組むとか

この回答への補足

ご回答ありがとうござます。
今回の英数字(小文字含む)の入力を拒否するという趣旨は、
「あらゆるコマンド入力を阻止する。」点にあります。

ですから、SQLのコマンドの実行前にエラーを出したいと
考えています。

補足日時:2007/02/02 17:54
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!