サイトに表示されるスパムメールから保護する別の方法

サイトに投稿されたスパムメールに対する保護の問題。 しかし、私は誤って別の戦い方を見つけました。



もちろん、次の保護方法を使用できます。

-グラフィック画像

-文字を置き換えます。 スパムを入力[at] must [dot] die

-フォームのjsを介した出力

var login = 'spammer' ;

var server = 'must.die' ;

var email = login+ '@' +server;

var url = 'mailto:' +email;

document .write( '<a href="' +url+ '">' +email+ ' '
);









-単純な出力を使用できます&#ANSI_symbol_code; PHPの場合:

 $email = 'spammer@must.die'; $url = 'mailto:spammer@must.die'; $safe_email=$safe_url=''; for($i=0; $i<strlen($email); $i++){ $safe_email .= '&#'.ord($email{$i}).';'; } for($i=0; $i<strlen($url); $i++){ $safe_url .= '&#'.ord($url{$i}).';'; } print "<a href='$safe_url'>$safe_email</a>";
      
      







前回のプロジェクトでprint-com.bizがレイアウトされた石鹸をスパムから保護する必要があったとき、それを探してこの興味深いサービスに出会いました。

コードをいじると、次のようになります。

function encode(email, text, tpl) {

var t = tpl.replace(/{e}/g, email);

var a = t.replace(/{text}/g, text);

t = "" ;

for (i = 0; i < a.length; i++) {

if (a.charCodeAt(i) <= 127) {

t += (String.fromCharCode(Math.floor(a.charCodeAt(i) / 16) + 65))

t += (String.fromCharCode(a.charCodeAt(i) % 16 + 65));

} else {

t += a.charAt(i);

}

}

var to = t;



return t;

}

function decode(a) {

var t = "" ;

for (i = 0; i < a.length; i++) {

t += (a.charCodeAt(i) <= 127) ?

String.fromCharCode((a.charCodeAt(i) - 65 ) * 16 + (a.charCodeAt(++i) - 65))

:

a.charAt(i);

}

return t;

}



* This source code was highlighted with Source Code Highlighter .








論理的な問題が発生します。たとえば、PHPで同様のものを実装してみませんか。

そして、何が起こったのか。

 
  関数encode_email($メール、$テキスト= null、$ tpl = null) 
  { 
  if(empty($ email))falseを返す場合; 
  if($ tpl === null)$ tpl = "<A HREF=\"mailto:{easket\"> {text} </A>"; 
  if($ text === null)$ text = $ email; 
  $ t = str_replace( '{e}'、$ email、$ tpl); 
  $ a = str_replace( '{text}'、$ text、$ t); 
  $ result = ''; 
  for($ i = 0; $ i <strlen($ a); $ i ++){ 
  if(ord($ a [$ i])<= 127){ 
  $ result。= chr(floor(ord($ a [$ i])/ 16)+ 65) 
    (文字列)chr(ord($ a [$ i])%16 + 65); 
  } else { 
  $ result。=(string)$ a [$ i]; 
  } 
  } 
  $ code = ""; 
  $ code。= "<script type = \" text / javascript \ "> 
    "a = \" "。$ result。" \ ";" 
    「for(i = 0; i <a.length; i ++){document.write((a.charCodeAt(i)<= 127)?String.fromCharCode((a.charCodeAt(i)-65)* 16 +( a.charCodeAt(++ i)-65)):a.charAt(i))} " 
    「</」。  「スクリプト>」 
    "<noscript>" .str_replace(配列( '@'、 '。')、配列( '©'、 '・')、$メール)。 "</ noscript>"; 

  $コードを返します。 
  } 
 








合計で、soap spam [mat.die]の場合、次のようになります。

DMEBCAEIFCEFEGDNCCGNGBGJGMHEGPDKHDHAGBGNEAGNHFHDHECOGEGJGFCCDO CAスパムなしでCAレターを書きますDMCPEBDO。

そして、jsでデコードした後、電子メールへの通常のリンクが表示されます。



キック、あまり痛くない。 私はこの事件に対する批判に感謝するだろう。




All Articles