KENT-WEB サポートコーナー 過去ログ [ 0097 ]


記事No: 15982
投稿日: 2018/09/04(Tue) 17:03:22
タイトルLightBoardのモジュール版画像認証が表示されません
ID情報: himazin
投稿者: 火魔神
URLhttp://himazin.art.coocan.jp/cgi-box/light/light.cgi

LightBoardを利用したいと考えておりますが、スパム対策としてモジュール版の画像認証機能を使用したいのですが、掲示板で画像認証の投稿キーの数字が表示されません。

スプリクトのinit.cgiは以下の通りです。
http://himazin.art.coocan.jp/cgi-box/light/init.txt

なお、チェックモードのチェック結果は全てOKでした。
また、ライブラリー版だと投稿キーは表示されます。

当該掲示板は以下の通りです。
http://himazin.art.coocan.jp/cgi-box/light/light.cgi

どうか宜しくお願い致します。


記事No: 15983
投稿日: 2018/09/04(Tue) 18:33:17
タイトルRe: LightBoardのモジュール版画像認証が表示されません
ID情報: hirayama
投稿者: hirayama
URLhttp://shade-search.com/sts/term/term.php

$cf{use_captcha} 以外はほぼデフォルトですね。

ライブラリー版だと正常と言うことはcaptcha.cgi も正常に動いていて ./lib/bin もちゃんと
アップロードされているということだと思うので、
$cf{font_ttl} で指定されているフォントファイル "tempest.ttf"が壊れていないか確認した上で
再度アップロードするぐらいしか思いつきません。


記事No: 15984
投稿日: 2018/09/04(Tue) 20:46:08
タイトルRe^2: LightBoardの画像認証が表示されません
ID情報: himazin
投稿者: 火魔神
URLhttp://himazin.art.coocan.jp/cgi-box/light/light.cgi

早速、有り難うございます。

tempest.ttfを開いても特に問題ない様ですし、
別のサイトからダウンロードしたtempest.ttfをアップしてみたのですが、
やはり表示されませんでした。

全くの原因不明です・・・。


記事No: 15985
投稿日: 2018/09/05(Wed) 10:27:40
タイトルRe^3: LightBoardの画像認証が表示されません
ID情報: hirayama
投稿者: hirayama
URLhttp://shade-search.com/sts/term/term.php

ttfファイルはバイナリファイルなので、
バイナリモードで転送されていることを確認してください。


記事No: 15986
投稿日: 2018/09/05(Wed) 15:15:58
タイトルRe^4: LightBoardの画像認証が表示されません
ID情報: himazin
投稿者: 火魔神
URLhttp://himazin.art.coocan.jp/cgi-box/light/light.cgi

私が使っているファイル転送ソフトはホームページビルダーなので、
ttfファイルの転送は自動でバイナリモードになっていると思います。

試しに、バイナリモードに設定して転送してみましたが、
残念ながら結果は同じでした。

もしかしたら画像認証とniftyとの相性の問題なのかもしれません・・・。


記事No: 15987
投稿日: 2018/09/06(Thu) 11:11:45
タイトルRe^5: LightBoardの画像認証が表示されません
ID情報: teketen
投稿者: てけてん

# 画像/フォント格納ディレクトリ【サーバパス】
$cf{bin_dir} = './lib/bin';

相対パスではなく、フルパス(サーバーパス)で指定するとどうなりますか?


記事No: 15988
投稿日: 2018/09/06(Thu) 15:45:16
タイトルRe^6: LightBoardの画像認証が表示されません
ID情報: himazin
投稿者: 火魔神
URLhttp://himazin.art.coocan.jp/cgi-box/light/light.cgi

ありがとうございます。

フルパス(サーバーパス)で指定してみましたが、
残念ながら結果は変わりませんでした・・・。


記事No: 15989
投稿日: 2018/09/06(Thu) 17:55:47
タイトルRe^7: LightBoardの画像認証が表示されません
ID情報: teketen
投稿者: てけてん

なるほど。
では、

# 画像/フォント格納ディレクトリ【サーバパス】
$cf{bin_dir} = '';


# [モジュール版] 画像フォント [ ファイル名のみ ]
$cf{font_ttl} = "";


と何も指定しない場合は、サーバーにインストールされているフォントが使われると思います。
多分、niftyでも同様だと思うので、試してみるとどうなりますか?


記事No: 15990
投稿日: 2018/09/06(Thu) 18:25:32
タイトルRe^8: LightBoardの画像認証が表示されません
ID情報: himazin
投稿者: 火魔神
URLhttp://himazin.art.coocan.jp/cgi-box/light/light.cgi

ありがとうございます。

ですが、やはり表示されませんでした。
本当に申し訳ありません・・・。


記事No: 15991
投稿日: 2018/09/11(Tue) 10:56:45
タイトルRe^9: LightBoardの画像認証が表示されません
ID情報: teketen
投稿者: てけてん

う〜ん、サーバーのデフォルトフォントも駄目(フォントを指定しない場合はだめなのかも知れませんが)、フルパスを記述しても駄目ということは、ちょっと分からないですね。
FONTのフルパスは、niftyのヘルプをみてみると火魔神さんの場合は、
/service/home/la.coocan.jp/hi/himazin.art.coocan.jp/homepage/cgi-box/light/lib/bin/tempest.ttf
のような感じでしょうか?
取り敢えず、フルパスビューワーでチェックしてみて下さい。
http://www.kent-web.com/utility/
指定したものとあっていましたか?
もう一度確認して、確かめて下さい。
(取り敢えず、フルパスビューワーで表示されたフルパスで指定してみて下さい)

それでも駄目な場合は、試しに、下記のスクリプトで試してみるとどうなりますか?
(念の為、GD::SecurityImageが駄目なのかどうかの切り分けです)
font => './lib/bin/tempest.ttf',
の'で括った部分にフォントを指定して下さい。
パーミッションは、light.cgiと同じです。
ファイル名は半角英数字なら何でも良いですが、.cgiの拡張子をつけて下さい。
アップロードしたら、ブラウザでアクセスして、

Image::Magick
01234
56789

と黒背景に白文字で書かれてあれば正常です。
以下のスクリプトは、自分で組む時間がなかったので、
http://d.hatena.ne.jp/shakemid/20081221
上記ページのスクリプトを利用させていただきました。

スクリプトは、#!/usr/local/bin/perlからexit;までで、最初の行が#!/usr/local/bin/perlになる必要があります。

#!/usr/local/bin/perl
use strict;
use warnings;
use Image::Magick;

my $arg = {
text => "Image::Magick\n01234\n56789",
size => '640x480',
bg => 'black',
fg => 'white',
font => './lib/bin/tempest.ttf',
pointsize => '56',
};

my $image = Image::Magick->new(size => $arg->{size});
$image->ReadImage('xc:' . $arg->{bg});
my ( $width, $height ) = $arg->{size} =~ /(\d+)x(\d+)/g;

my ($char_width, $char_height, $ascender, $descender,
$text_width, $text_height, $max_advance,
$bounds_x1, $bounds_y1, $bounds_x2, $bounds_y2,
$origin_x, $origin_y )
= $image->QueryFontMetrics(
encoding => 'UTF-8',
text => $arg->{text},
font => $arg->{font},
fill => $arg->{fg},
pointsize => $arg->{pointsize},
align => 'Center',
);
my $lines = ($arg->{text} =~ s/\n/\n/g);
my $x = $width / 2;
my $y = $height / 2 - $char_height * $lines / 2;
$image->Annotate(
encoding => 'UTF-8',
text => $arg->{text},
font => $arg->{font},
fill => $arg->{fg},
pointsize => $arg->{pointsize},
align => 'Center',
x => $x,
y => $y,
);

print "Content-type: image/png\n\n";
binmode STDOUT;
$image->Write('png:-');
undef $image;
exit;


記事No: 15992
投稿日: 2018/09/12(Wed) 17:39:46
タイトルRe^10: LightBoardの画像認証が表示されません
ID情報: himazin
投稿者: 火魔神
URLhttp://himazin.art.coocan.jp/cgi-box/light/light.cgi

色々とありがとうございます。
本当に心強いです。

ご指定の通りやってみたのですが、やはり表示されませんでした。

また、ご紹介頂いたスプリクトを試してみたのですが、
黒背景が表示されるだけで、数字は表示されませんでした。
http://himazin.art.coocan.jp/cgi-box/light/test.cgi


記事No: 15993
投稿日: 2018/09/14(Fri) 21:06:37
タイトルRe^11: LightBoardの画像認証が表示されません
ID情報: teketen
投稿者: てけてん

う〜ん、やはりそうですか。
niftyでは、文字を表示出来ないのかも知れませんね…。
何故なんだろう。
私では、お手上げです。

モジュール版を使用せず、ライブラリ版をご利用になるしかないですね…。
ただ、ライブラリ版は、もう解析されていると思うんですよね。
自分も、ライブラリ版は、画像から投稿コードを取得するのに成功しているくらいですから(スパム対策のために、試しに解読してみたら出来たって感じです)。

なので、他の方法でもよろしければ、ちょっと変わったスパム対策なんですが、投稿コードを入力する代わりに
http://www.skuare.net/test/jslideLock.html
のJavaScriptを利用するslideLockを利用してみるのも良いかと思います。
サンプルは、上記ページの一番下にあります。
興味がお有りでしたら、おっしゃっていただければ、KENTさんのスクリプト用に改造してみたのでご紹介しますが^^;

slideLockをCGIスクリプトで出力して、CGIスクリプトを直接呼び出された場合は、エラーの文字を表示して、JavaScriptの記述を見れないようにしています。
リファラをチェックしているだけなので、リファラを偽造してアクセスされるとJavaScriptの記述が見られてしまいますが、でも、少しはマシかな?と思います。
投稿する方も、スライドするだけなので、文字入力が無い分、負担は軽いかと思いますし。
勿論、KENTさんの2018年9月現在の最新版の掲示板全てに対応しています。

でも、一番簡単なのは、投稿コードの代わりに合言葉を入力させることでしょうね。
サイトに来られる方なら、絶対に知っていることを合言葉にするなら、確実でしょうし。
スパムは、サイトの内容まで読んでいないと思いますから。

どの方法を取るかは、火魔神さんのお好みで。


記事No: 15994
投稿日: 2018/09/15(Sat) 13:51:33
タイトルRe^12: LightBoardの画像認証が表示されません
ID情報: himazin
投稿者: 火魔神
URLhttp://himazin.art.coocan.jp/cgi-box/light/light.cgi

本当に色々有り難うございました。
やはりniftyとの相性の問題なのかと思います・・・残念ですが。

あとは、やっぱりパスワードによるアクセス制限が有効ではないかと、
私も薄々感じておりました (^^;

ですが、てんすけさんのslideLockも実に面白そうで、とても興味深いです。
是非、教えて頂ければと思いますので、
よろしくお願い致します。


記事No: 15995
投稿日: 2018/09/15(Sat) 17:28:55
タイトルRe^13: LightBoardの画像認証が表示されません
ID情報: teketen
投稿者: てけてん

> てんすけさんのslideLockも実に面白そうで、とても興味深いです。

すみません、てけてんです^^;
それでは、slideLockを使ってみますか?
slideLockは、私が作成したものではなく、既に配布されているものです。
前回のコメントでご紹介したページは、他の方がslideLockについて書かれたページです。


と、前置きはこれくらいで。
閑話休題。

※ 改造は、自己責任でお願いします。
※ 何かあった際は、元に戻して下さい。
※ よろしくおねがいします。

slideLockは、JavaScriptですので、無効のブラウザでは表示出来ません。
ご利用になる場合は、訪問者に、そのように伝えて下さい。
(出来れば、掲示板内ではなく、別のページで案内すると良いと思います)

掲示板スクリプトの改造は行いませんが、テンプレートファイルを少し弄ります。
先ず始めに、テンプレートファイル(tmplディレクトリ内)のbbs.htmlをテキストエディタで開いて下さい。
bbs.htmlは、作業をする前に、バックアップを取っておいて下さい。

<!-- captcha_begin -->
</tr><tr>
<th>画像認証</th>
<td>
<input type="text" name="captcha" class="reg-num" style="ime-mode:inactive" maxlength="8" />
<span>(右画像を入力)</span> <img src="!captcha_cgi!?!str_crypt!" class="capt" alt="投稿キー" />
<input type="hidden" name="str_crypt" value="!str_crypt!" />
</td>
<!-- captcha_end -->

の記述を削除します。

--------------------------------
<script type="text/javascript" src="!cmnurl!/bbs.js"></script>

の次の行に、

<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.21/jquery-ui.js"></script>
<script type="text/javascript" src="./xxx.cgi"></script>
<link rel="stylesheet" type="text/css" href="./xxx.css">

を挿入します。
但し、

<link rel="stylesheet" type="text/css" href="./xxx.css">

<script type="text/javascript" src="./xxx.cgi"></script>

ですが、xxxのファイル名は、それぞれお好きなファイル名をつけて下さい。
外部スタイルシートとCGIスクリプトは、最後にそれぞれ記述しますので、コピーしてテキストエディタにペーストして、保存して下さい。
どちらもパスは、掲示板から見た相対パスでも、http://からのアドレスでも構いません。

--------------------------------
<form action="!regist_cgi!" method="post">

<input type="submit" value="投稿" class="reg-btn" />



<form action="!regist_cgi!" method="post" id="xxxx">
<input type="submit" value="投稿" class="reg-btn" id="yyyy" />

のように、id属性(id="")を追加して下さい。
値は、お好きなもので構いません。
但し、idなので、他と被らないもので指定して下さい。

--------------------------------
slideLockを表示すると、タイトル入力欄のデザインが崩れるので、

<th>タイトル</th>



<th style="vertical-align: top;"><p style="margin-top:5px;">タイトル</p></th>

に変更して下さい。
"margin-top:5px;"の5pxはご自分で調整されて構いません。
テンプレートファイルの修正は、ここまでです。

--------------------------------
http://www.skuare.net/test/img/arrow_right.png
より、slideLockで使用する矢印画像をダウンロードして下さい。

最後に記述するスクリプトの設定で、この画像を指定する部分があるので、アップロードした場所を指定して下さい。
また、先程
<form action="!regist_cgi!" method="post" id="xxxx">
<input type="submit" value="投稿" class="reg-btn" id="yyyy" />
で指定したidも、設定部分で設定を行います。

--------------------------------
■掲示板のinit.cgiの設定部分、
$cf{use_captcha} = 1;
ここは、0以外を設定して下さい。

以上が、テンプレートの変更や設定などの説明です。


--------------------------------
以下が、(<link rel="stylesheet" type="text/css" href="./xxx.css">で呼び出す外部スタイルシートになります。
--------------------------------


/* スタイルシート ここから */

/* Slider ----------------------------------*/
.ui-slider { position: relative; text-align: left; display: inline-block; margin: 5px 0 5px 0px; width: 100px; }
.ui-slider-handle { position: absolute; z-index: 2; width: 14px; height: 12px; cursor: pointer; background: #333; top: -3px; margin-left: -8px; border: 1px solid #784807; }
.ui-slider-horizontal { height: 8px; background: #ddd; border: 1px solid #ccc; }
.ui-slider-handle:hover, .ui-state-hover, .ui-state-focus, .ui-state-active { background: #aaa; }

/* CSS3 ---------------------------------------------------- */
.ui-slider-handle {
border-radius: 2px;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
background: -moz-linear-gradient(top, #f60, #930);
background: -webkit-gradient(linear, left top, left bottom, from(#f60), to(#930));
}
.ui-slider-horizontal {
border-radius: 2px;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
background: -moz-linear-gradient(left, #fff, #ddd);
background: -webkit-gradient(linear, left top, right top, from(#fff), to(#ddd));
}
a.ui-state-hover, a.ui-state-focus {
background: -moz-linear-gradient(top, #666, #333);
background: -webkit-gradient(linear, left top, left bottom, from(#666), to(#333));
box-shadow: 0px 0px 8px #f60;
-moz-box-shadow: 0px 0px 8px #f60;
-webkit-box-shadow: 0px 0px 8px #f60;
}
a.ui-state-active {
background: -moz-linear-gradient(top, #ddd, #aaa);
background: -webkit-gradient(linear, left top, left bottom, from(#ddd), to(#aaa));
}
.slider,.quiet,#locked,#unlocked {
font-size:12px;
margin: 5px 0px 0px 0px;
}

/* スタイルシート ここまで */


--------------------------------
以下がslideLockをCGIスクリプトで記述したものとなります。
<script type="text/javascript" src="./xxx.cgi"></script>で呼び出すスクリプトとなります。
スクリプトは、
#!/usr/local/bin/perl
から
__END__
までです。
必ず、最初の行は
#!/usr/local/bin/perl
となります。
必ず文字コードは、utf-8N(BOMなしのutf8)にて保存して下さい。
アップロードは、アスキーモードで、パーミッションは掲示板と同じです。
--------------------------------


#!/usr/local/bin/perl
# --------------------------------------------------------------------------------------------------
# ↑ご利用のサーバーに合わせて、変更して下さい。
# --------------------------------------------------------------------------------------------------
# このスクリプトは、必ず文字コードはutf-8N(BOMなしのutf8)にて保存して下さい。
# --------------------------------------------------------------------------------------------------
# slideLock用設定スクリプト。
# --------------------------------------------------------------------------------------------------

# 設定 -------------------

# 設定ファイルへのパス
require "./init.cgi";

# 掲示板を設置しているサイトのURLを指定して下さい。
# 掲示板のURLではなく、サイトのアドレスです。
# 例えば、http://example.com/bbs/bbs.cgiが掲示板のアドレスなら、
# http://example.com/
# を記述する。
my $site = 'http://localhost/~xxx/';

# <input type="submit" id="">のid属性の値を記述
# id属性がない場合は、タグに記述した上で、同じ値を指定して下さい。
# 例:id="submit"なら
# my $submit = 'submit';
my $submit = 'submit';

# <form action="!regist_cgi!" method="post" id="">のid属性の値を記述
# id属性がない場合は、タグに記述した上で、同じ値を指定して下さい。
# 例:id="form_"なら
# my $form = 'form_';
my $form = 'form_';

# slideLockで使用するアイコン
my $icon = './arrow_right.png';

# スライダーを送信ボタンの前に表示する場合は1を、
# 後に表示する場合は0を指定して下さい。
my $position = 0;

# このスクリプトのアドレス
# 相対パスで指定する場合は、掲示板からみたパスをしてい
my $script = './xxx.cgi';


# 設定終了 ---------------

# 以下は、スクリプトが解る方のみ

eval { require 5.008; };
if($@) {
print "Content-type: text/html\n\nPerl Version Error !";
exit;
}

use strict;
use CGI::Carp qw(fatalsToBrowser);

my %cf = set_init();

my $ref = $ENV{'HTTP_REFERER'};
$ref =~ s/\?(.|\n)*//ig;
$ref =~ s/\%7E/\~/ig;
(print "Content-Type: text/html; charset=utf-8\n\nエラー" and exit) if($ref !~ /^$site/);

my %in = parse_form() if ($ENV{'CONTENT_LENGTH'} or $ENV{'QUERY_STRING'});
my ($str_plain,$str_crypt);

if($in{'act'} ne 'msc') {

require $cf{captcha_pl};
($str_plain,$str_crypt) = cap::make($cf{captcha_key},$cf{cap_len});
my $plain = $str_plain;
$plain =~ s/^(\d{$cf{cap_len}}).*/$1/ or (print "Content-Type: text/plain\n\nエラー" and exit);

my $form2 = '#' . $form;
$submit = '#' . $submit;

print "Content-Type: text/javascript; charset=utf-8\n\n";
print "var jsScript = '$script';\n";
print <<'EOM';

(function($) {
$.fn.slideLock = function(options) {
// set defaults
var defaults = {
// style these options with css to fit your application
labelText: "Slide to Unlock:",
noteText: "Proves you're human :)",
lockText: "Locked",
unlockText: "Unlocked",
iconURL: "chrome/icons/arrow_right.png",
inputID: "sliderInput",
onCSS: "#333",
offCSS: "#aaa",
inputValue: 1,
saltValue: 9,
checkValue: 10,
submitID: "#submit"
};
var opts = $.extend(defaults, options);
// insert ui function
function insertLocker() {
var uiHTML = '<div id="rin" style="display: inline;"><p class="slider"><label for="slider">' + opts.labelText + '<br/><span class="quiet">' + opts.noteText + '</span></label>';
uiHTML += '<div id="slider"></div><br>';
uiHTML += '<span id="locked">' + opts.lockText + '</span><img src="' + opts.iconURL + '" alt="Slide to the right" /><span id="unlocked">' + opts.unlockText + '</span></p>';
uiHTML += '<input type="hidden" name="' + opts.inputID + '" value="" id="' + opts.inputID + '" /><div>';
return uiHTML;
}
return this.each(function() {
var obj = $(this);
// insert ui elements before the form's submit button
var submitButton = $(opts.submitID);
EOM
print "submitButton." , $position ? 'before' : 'after' , "(insertLocker())\n";
print <<'EOM';
// disable submit button
$(submitButton).css('margin-top', '0px').attr('disabled', 'disabled');
// slider functionality
$("#slider", obj).slider({
animate: true,
value: 0,
min: 0,
max: opts.inputValue,
step: opts.inputValue,
stop: function(event, ui) {
// set value of usercheck
// $("#sliderInput", obj).val(ui.value + opts.saltValue);
$("#" + opts.inputID, obj).val(ui.value);
var salt = '';
// ajax request to verify input value against salt
$.post(
jsScript, {
"act": 'msc',
"human_check": opts.inputValue,
"str_crypt": opts.saltValue,
"captcha": opts.checkValue
},
function(data) {
salt = data;
if(opts.debug) console.log(salt);
// enable submit button
//if($("#" + opts.inputID, obj).val() == opts.checkValue) {
if(salt === "true") {
// change color of labels
$("#locked", obj).css({'color': opts.offCSS, 'font-weight': 'normal'});
$("#unlocked", obj).css({'color': opts.onCSS, 'font-weight': 'bold'});
// enable
$(submitButton).attr('disabled', '');
// フェードアウト
$("#rin").fadeOut("slow");
}else{
// change color of labels
$("#locked", obj).css({'color': opts.onCSS, 'font-weight': 'bold'});
$("#unlocked", obj).css({'color': opts.offCSS, 'font-weight': 'normal'});
// disable
$(submitButton).attr('disabled', 'disabled');
}
}
);
}
});
// reset slider control on submit or reset button click
$("input:submit, input:reset").click(function() {
$("#slider").slider("option", "value", 0);
});
});
};
})(jQuery);

EOM
print <<"EOM";

\$(document).ready(function() {

\$("$form2").slideLock({
labelText: "スライドさせてロックを解除してください",
noteText: "解除されるとスライドは消えます",
lockText: "ロック中",
unlockText: "ロック解除",
iconURL: "$icon",
inputID: "sliderInput",
onCSS: "#333",
offCSS: "#aaa",
inputValue: true,
saltValue: "$str_crypt",
checkValue: "$plain",
submitID: "$submit"
});

\$("<input>", {
type: 'hidden',
id: 'saltValue',
name: 'str_crypt',
value: "$str_crypt"
}).appendTo("$form2");

\$("<input>", {
type: 'hidden',
id: 'checkValue',
name: 'captcha',
value: "$plain"
}).appendTo("$form2");


});

function send(){
var frm=document.$form;
if(frm.elements["sliderInput"].value!=""){
frm.action="$cf{'bbs_cgi'}";
frm.method="post";
frm.encoding="application/x-www-form-urlencoded";
return true;
}else{
alert("スライドして下さい");
return false;
}
}
EOM

} elsif($in{'act'} eq 'msc') {
print $in{'human_check'} eq 'true' ? "Content-Type: text/plain\n\ntrue" : "Content-Type: text/plain\n\nfalse";
}
exit;

__END__


記事No: 15998
投稿日: 2018/09/16(Sun) 01:58:55
タイトルRe^14: LightBoardの画像認証が表示されません
ID情報: hirayama
投稿者: hirayama
URLhttp://shade-search.com/sts/term/term.php?noform=SvzHNKA2jl&sort=menu

いつの間にか面白そうな話になっていますね^^

なるべくユーザーの負担にならず効果的なスパム対策がないかと
探したことがあるんですが、jQueryでこんな機能があるとは知りませんでした。
やはりJavaScriptが有効かもしれないですね。


記事No: 15999
投稿日: 2018/09/16(Sun) 09:53:39
タイトルRe^15: LightBoardの画像認証が表示されません
ID情報: teketen
投稿者: てけてん

hirayamaさん、どうも。
> jQueryでこんな機能があるとは知りませんでした。

自分が配布している掲示板で採用しているものです。
っても、今は全く宣伝していないので、殆ど使って下さる方はいらっしゃいませんが^^;
(たまに、過去に配布したスクリプトを使ってくださっている方の掲示板から飛んで来られる方もいらっしゃいますが)

まあ、そんなことは置いておいて。
今回、ご紹介したものは、入力フォームにCAPTCHAの入力フォームがないので、一見、画像認証を無効にしているように見えるので、対策としては良いかなと思います。
(掲示板のhtmlタグのみを解析して、そのフォームに値を設定して宣伝してくるスパムに向いています)

他にも、色々あるのですが、こんなのもありますね〜。
http://www.htmldrive.net/items/show/1122/MotionCAPTCHA-cool-jQuery-CAPTCHA-plugin
https://tympanus.net/codrops/2009/09/08/jquery-fancy-draggable-captcha/


記事No: 16001
投稿日: 2018/09/17(Mon) 10:15:03
タイトルRe^15: LightBoardの画像認証が表示されません
ID情報: himazin
投稿者: 火魔神

このスパム対策がKENTさんの掲示板で、
正式に採用されたら良いのにって思います。

コンセプトの違いなどで、やっぱり無理でしょうかσ(^_^;


記事No: 16000
投稿日: 2018/09/16(Sun) 11:46:21
タイトルRe^14: LightBoardの画像認証が表示されません
ID情報: himazin
投稿者: 火魔神
URLhttp://himazin.art.coocan.jp/cgi-box/light/light.cgi

てんすけさん、色々有り難うございます。

私に出来るかどうか分かりませんが、
是非チャレンジして見たいと思います。


[検索ページ]