C#투표 부정행위 프로그램 제작 방향

2230 단어 ASP.NET
최근에 어떤 친구가 온라인 투표를 도와달라고 했어요. 사이트가 IP를 제한하기 때문에 (여기는 사실 거짓말이야) 제가 눌러줬어요. 그런데 갑자기 1등 투표수가 뒤에 있는 사람보다 훨씬 많고 3-4백 표 정도 모자라는 걸 알게 됐어요.나는 첫 번째 사람이 투표를 도와줄 사람을 찾았을 거라고 생각했지만 투표 자체의 의미를 잃었다.그래서 나는 일부러 나쁜 짓을 하려고 했다.자동 투표 절차를 써서 완성할 생각입니다.스케줄러: 폭력으로 폭력을 제압하는 거 아니야?)
제가 투표 사이트를 분석해 봤는데 IP를 제한한다고 하더라고요. 그런데 제 분석에 의하면 IP를 제한하는 것이 아니라 COOKIES가 기록한 투표 정보를 사용했어요. 만약에 COOKIES를 제거하면 다시 투표할 수 있어요. 그런데 이렇게 하면 IE의 참여수를 수동으로 조정해야 하기 때문에 피곤해 죽겠어요.그래서 COOKIES를 자동으로 삭제하고 페이지를 자동으로 제출할 수 있을까요?
이상의 분석을 통해 우리는 이 프로그램을 하려면 두 가지 절차가 필요하다는 것을 알았다.
1. COOKIES 자동 지우기
2. 양식 자동 제출
일단 첫 번째부터 만나보도록 하겠습니다.
MSDN 웹 사이트에 HI Script 칼럼이 있는지 알아봤습니다.WINDOWS 스크립트를 실행하는 기술을 많이 소개했는데 그 중에서 IE 임시 폴더와 COOKIES 디렉터리를 어떻게 조작하는지에 관한 기능이 있다.http://www.microsoft.com/china/technet/community/scriptcenter/resources/hey1102.mspx
안에 있는 방법에 따라 저는 C#에 다음과 같은 코드를 써서 COOKIES를 삭제했습니다. 주의해야 할 것은 그 중의 index입니다.dat 파일은 삭제할 수 없습니다. 그래서 저는 처리를 했습니다. 그가 생각하는 모든 내용을 삭제했습니다. 코드는 다음과 같습니다.
const int cookies = 33;
Shell32.Folder objFolder;
Shell32.FolderItems objFolderItems;
Shell32.ShellClass objShell;
objShell = new Shell32.ShellClass();
objFolder = objShell.NameSpace(cookies);
objFolderItems = objFolder.Items();
foreach(Shell32.FolderItem objFolderItem in objFolderItems)
{
if(!"index.dat".Equals(objFolderItem.Name.ToLower()))
{
File.Delete(objFolderItem.Path.ToString());
}
}

첫 번째 단계가 해결되었고 두 번째 문제를 해결해야 하기 때문에 나는 몇 가지 자료를 조회했다.제 문제를 해결할 수 있는 두 가지 방법이 있다는 걸 알게 됐어요.
1. WebClient 사용
이런 방식은 유사한 페이지 제출 방식을 직접 집행하여 페이지의 제어를 하고 제출 결과 페이지의 내용을 되돌릴 수 있으며 속도가 빠르다.
2, WebBrowser 사용
이런 방식은 자신이 브라우저를 만든 후에 페이지의 대상을 제어하여 제출하는 것과 유사하다.이런 속도는 좀 느리다.
그래서 나는 첫 번째 방식을 사용하기로 결정했다. 코드는 다음과 같다.
WebClient wc = new WebClient();
string postData = "username=xxx"
wc.Headers.Add("Content-Type","application/x-www-form-urlencoded"); 
byte[] bReturn = wc.UploadData("http://www.xxx.xxx/vote.asp","POST",Encoding.Default.GetBytes(postData));
//MessageBox.Show(Encoding.Default.GetString(bReturn));
wc.Dispose();

봤지, 이렇게 하면 돼.
나머지는 하나의 timer로 순환해서 실행하면 됩니다.
하하, 모든 것이 이렇게 간단하다.그래도 이렇게 하는 것은 공평한 원칙에 어긋난다고 생각한다.부정행위를 한 사람을 징계하는 데 쓰지 않기를 바랍니다

좋은 웹페이지 즐겨찾기