.Text Spam 対策

投稿日 : 2005年6月19日 1:47

はらみずさんのところに紹介されていた方法でとりあえず対策したものです。はらみずさんには感謝です。急ぎだったので助かりました。

一応備忘録としてこちらにまとめ。

SPAM用 キーワードテーブル作成

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[blog_SpamKey]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[blog_SpamKey]
GO

CREATE TABLE [dbo].[blog_SpamKey] (
 [spamtitle] [nvarchar] (50) NOT NULL
) ON [PRIMARY]
GO

SPAM用保存テーブル作成

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[blog_Content_spam]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[blog_Content_spam]
GO

CREATE TABLE [dbo].[blog_Content_spam] (
 [ID] [int] IDENTITY (145, 1) NOT NULL ,
 [Title] [nvarchar] (255)  NOT NULL ,
 [DateAdded] [smalldatetime] NOT NULL ,
 [SourceUrl] [nvarchar] (200)  NULL ,
 [PostType] [int] NOT NULL ,
 [Author] [nvarchar] (50)  NULL ,
 [Email] [nvarchar] (50)  NULL ,
 [SourceName] [nvarchar] (200)  NULL ,
 [BlogID] [int] NULL ,
 [Description] [nvarchar] (500)  NULL ,
 [DateUpdated] [smalldatetime] NULL ,
 [TitleUrl] [nvarchar] (255)  NULL ,
 [Text] [ntext]  NULL ,
 [ParentID] [int] NULL ,
 [FeedBackCount] [int] NULL ,
 [PostConfig] [int] NULL ,
 [EntryName] [varchar] (100)  NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

blog_insertEntry ストアドプロシージャの変更

if(Ltrim(Rtrim(@Description)) = '')
set @Description = null

if (SELECT COUNT(spamtitle) FROM blog_SpamKey WHERE (spamtitle = @Title)) = 1
Begin
  set @PostConfig = 0
  set @TitleUrl = null

  INSERT INTO blog_Content_spam (Title, TitleUrl, [Text], SourceUrl, PostType, Author, Email, DateAdded,DateUpdated, SourceName, [Description], PostConfig, ParentID, BlogID, EntryName ) VALUES (@Title, @TitleUrl, @Text, @SourceUrl, @PostType, @Author, @Email, @DateAdded, @DateAdded, @SourceName, @Description, @PostConfig, @ParentID, @BlogID, @EntryName)
  Select @ID = @@Identity
END

ELSE

BEGIN
  INSERT INTO blog_Content (Title, TitleUrl, [Text], SourceUrl, PostType, Author, Email, DateAdded,DateUpdated, SourceName, [Description], PostConfig, ParentID, BlogID, EntryName ) VALUES (@Title, @TitleUrl, @Text, @SourceUrl, @PostType, @Author, @Email, @DateAdded, @DateAdded, @SourceName, @Description, @PostConfig, @ParentID, @BlogID, @EntryName)
  Select @ID = @@Identity

  if(@PostType = 1 or @PostType = 2)
  Begin
    exec blog_UpdateConfigUpdateTime @blogID, @DateAdded
  End
  Else if(@PostType = 3)
  Begin
    Update blog_Content
    Set FeedBackCount = FeedBackCount + 1 where [ID] = @ParentID
  End
End

 

フィードバック

# SPAM対策備忘録

2005/06/18 11:52 by shino-blog (Avi's)
SPAM対策備忘録
コメントの入力
タイトル
 
名前
 
Url
コメント