พวกเว็บนอกนี่เขาเขียนระบบยังไงเหรอครับ ถึงรู้ว่าไม่ใช่ human ตอนเข้าถึง page

เริ่มโดย okgofun, 09 สิงหาคม 2007, 19:28:24

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

okgofun

พวกเว็บนอกนี่เขาเขียนระบบยังไงเหรอครับ ถึงรู้ว่าไม่ใช่ human ตอนเข้าถึง page นั้นๆของเว็บเขา

ผมลองหัดๆเขียน php พวกฟังก์ชั่น file_get_contents จากเว็บต่างๆ ส่วนใหญ่พวกเว็บ article แล้วก็มักจะเจอข้อความแสดงประมาณว่า เราไม่ใช่ human แบบว่ามีการเข้าถึงเพจของเขาด้วยการดึง ไม่พบ cookie และอื่นๆ

เขาเช็คได้ยังไงหละ เก่งจัง ก็เรารันใน localhost แล้วค่อยดึงไฟล์นั้นนี่ ไม่ได้ใช้ software ซะหน่อย

เอ่อ อยากรู้ว่ามีวิธีการปลอม header หรือเขียนคำสั่งให้เพจที่เรารันมันเป็นธรรมชาติเหมือนการเข้าเพจนั้นๆโดยตรงใหมครับ  :(
จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน

kahn

อ้างถึงจาก: okgofun ใน 09 สิงหาคม 2007, 19:28:24
พวกเว็บนอกนี่เขาเขียนระบบยังไงเหรอครับ ถึงรู้ว่าไม่ใช่ human ตอนเข้าถึง page นั้นๆของเว็บเขา

ผมลองหัดๆเขียน php พวกฟังก์ชั่น file_get_contents จากเว็บต่างๆ ส่วนใหญ่พวกเว็บ article แล้วก็มักจะเจอข้อความแสดงประมาณว่า เราไม่ใช่ human แบบว่ามีการเข้าถึงเพจของเขาด้วยการดึง ไม่พบ cookie และอื่นๆ

เขาเช็คได้ยังไงหละ เก่งจัง ก็เรารันใน localhost แล้วค่อยดึงไฟล์นั้นนี่ ไม่ได้ใช้ software ซะหน่อย

เอ่อ อยากรู้ว่ามีวิธีการปลอม header หรือเขียนคำสั่งให้เพจที่เรารันมันเป็นธรรมชาติเหมือนการเข้าเพจนั้นๆโดยตรงใหมครับ  :(


ส่วนใหญ่จะใช้วิธีเช็ค user agent ครับ  แต่สามารถปลอมได้ ลองศึกษาฟังชั่น curl ดูครับ
[direct=http://www.theblogmagic.com/?promocode=MQ==]>>> โปรโมชั่น Blog Magic สุดคุ้ม นาน ๆ มีที ช้าอดนะจ้าาา คลิกเลย [/direct]Blog Magic Support Forums << pm สอบถามรายละเอียดได้ที่ Support Forums จะตอบรวดเร็วกว่านะครับผม

gAAp

ตรวจจับจากความเร็วในการดึงข้อมูล ต่อ IP ครับ
จากการสังเกตดู ถ้าค่อยๆ ดึง ค่อย ๆ ดูด จะไม่มีปัญหา
แต่ถ้าดูดเร็ว ๆ หล่ะเป็นเรื่อง  :D

ColdMoney

เยอะแยะครับ วิธีเช็คอ่ะ เช่น
1 cookies ถ้าไม่มีก็คือ ดึงโดยตรง
2 user agent ถ้าไม่มี หรือไม่มารตฐานก็คือ ดึงโดยตรง
3 ความถี่ของการดึง


วิธีแก้ ก็ใช้ curl ครับ หรือไม่ก็ใช้ vb ก็ได้เปิดเว็บทีล่ะหน้าแล้ว save มันก็เหมือนกะเราใช้ ie เปิดอ่ะ เนียนมากๆ มีครบทุกอย่างที่ เค้าต้องการ  ;D ;D


[direct=https://www.jumnong.com]รับจำนอง[/direct] [direct=https://burapasup.com]รับซื้อบ้าน[/direct] [direct=https://kadsan.com]สินค้าราคาถูก[/direct] [direct=https://checkcheap.com]เปรียบเทียบราคา[/direct]

okgofun

ขอบคุณครับ

เท่าที่สังเกตุต่อมา รู้สึกว่าเขาจะเน้นที่ความถี่ในการเข้าถึงข้อมูล คงจะตรวจสอบจาก ip หรือไม่ก็ cookie ของเราแน่ๆเลย

เอ? จะมีวิธีเขียนให้ header เปลี่ยน ip หรือเปลี่ยนเวลาได้บ้างใหมนะ  :P

อิอิ  ลุยต่อ
จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน

pongino

ถ้าเป็น PHP มันมีคำสั่ง check ว่าเป็น browser อะไรหรือเป็น bot อะไรนะ
รู้สึกว่า $_SERVER['HTTP_USER_AGENT'] มั้ง
มันจะดึงค่าว่าเป็น browser อะไร หรือ Bot อะไรกับลังอ่าน page เราอยู่
อันนี้คือพื้นๆที่สุดแล้ว

ถ้าอยากรู้ว่าใช้ file_get_content หรือ cURL แล้วมันขึ้นว่าอะไร ก็ลองเขียนโปรแกรมดูนะครับ

แต่ระบบใหญ่ๆ อาจจะมี check พฤติกรรมที่ซับซ้อนกว่านี้

White Road ขายบริการทางเพจ ท้าทายอำนาจรัฐ! แผนปั่นเงินแบบ White Hat เต็มอัตรา สู่เป้าหมาย 50,000 บาทต่อเดือน!!! ดูรายละเอียด Link ข้างล่าง

http://www.thaiseoboard.com/index.php/topic,20304.0.html

เวปสำหรับสั่งซื้อและ Support ลูกค้า
http://www.whitehatsite.com

เวปตัวอย่าง
http://www.cityguideseek.com

สนใจก็ PM มาได้เลยจ้า

tony

ต้องทำ human simulation  ด้วยนะ เช่น ทำท่า โหลดรูปด้วย  ไม่ใช่โหลดแต่ html  :P  แล้วก็ เว้นระยะ ในการ โหลด หน้าถัดไป ::)
ไม่ค่อยว่างมาดูเท่าไร แต่หัวใจยังกิ๊ดตึ๋ง

kahn

ถ้าหมายถึงเวบ ezine article ลำบากครับ ผมเสีย ip ไป 4 ตัวแล้ว โดนแบนหมด  ทั้งปลอม user agent ทั้งใส่ proxy ทั้งกำหนดความถี่การเข้าถึงแบบหน่วงเวลา  พยายามให้เหมือนมนุษย์มากที่สุด ยังโดน เค้าเช็คความถี่น่ะครับ  :)
[direct=http://www.theblogmagic.com/?promocode=MQ==]>>> โปรโมชั่น Blog Magic สุดคุ้ม นาน ๆ มีที ช้าอดนะจ้าาา คลิกเลย [/direct]Blog Magic Support Forums << pm สอบถามรายละเอียดได้ที่ Support Forums จะตอบรวดเร็วกว่านะครับผม

myong1

ezine เท่าที่ผมลองเอง ผมเคยดึงหลายพันหน้าใน 1 วันก็ไม่เห็นจะโดนแบนนะครับ แต่ผมใช้โปแกรม Desktop ของผมเองนะครับ

แล้วตัวโปรแกรมก็เหมือนของ php คือเป็นตัวดึงข้อมูลอย่างเดียว ไม่ได้จำลองเป็น browser

ส่วนที่ว่า ezine เช็คยังไง ผมว่าเขาไม่ได้เช็คจาก cookies แน่ ๆ เพราะหน้ามันเข้า direct ตรง ๆ ได้

แล้วไม่ได้มีการ submit อะไรทั้งสิ้น คือเข้าตรง ๆ แล้วดึงข้อมูลออกมาอย่างเดียว

ถ้าให้ผมเดาก็น่าจะเป็น ความถึ่ในการดึงข้อมูลต่อ 1 ip เขาอาจจะกันไว้ว่าใน 1 ชม/1 ip เข้าเว็บเขาได้ไม่เกิน 1000 ครั้ง ถ้าเกินถือว่าใช้โปรแกรม

อะไรประมาณนี้ครับ ก็ลองสังเกตุละกันว่า ทำยังไงบ้างถึงโดนบล็อค แต่ถ้าโดนแบน ip  ซัก 2-3 วันก็น่าจะใช้ ip ตัวนั้นได้อีกครับ  :)

harmonic

นึกถึงสมัยเขียนโปรแกรมส่งเข้า pager ปลอม header กันอุตลุต

ถ้าอยากรู้เรื่องนี้ให้กระจ่างแนะนำว่าหาหนังสือ HTTP และ Apache มาอ่าน  8)

ColdMoney

อ้างถึงจาก: kahn ใน 10 สิงหาคม 2007, 07:20:49
ถ้าหมายถึงเวบ ezine article ลำบากครับ ผมเสีย ip ไป 4 ตัวแล้ว โดนแบนหมด  ทั้งปลอม user agent ทั้งใส่ proxy ทั้งกำหนดความถี่การเข้าถึงแบบหน่วงเวลา  พยายามให้เหมือนมนุษย์มากที่สุด ยังโดน เค้าเช็คความถี่น่ะครับ  :)

ผมดึงมา 5 แสน articles ยังไม่เห็นโดนเลยอ่ะครับ ไปทำไงเนี่ยถึงโดน  ???

[direct=https://www.jumnong.com]รับจำนอง[/direct] [direct=https://burapasup.com]รับซื้อบ้าน[/direct] [direct=https://kadsan.com]สินค้าราคาถูก[/direct] [direct=https://checkcheap.com]เปรียบเทียบราคา[/direct]

EThaiZone

แนะนำเลย ลำบากหน่อยแต่...
สมัครโฮสฟรีนอกๆ อะ

แล้วเขียนดึงเลย โดนแบนช่างหัวมัน

ผมเคยทำแล้วกะเว็บอื่น ผล..
โดนแบน ip แถมโดนโฮสฟรีขึ้นแบล็กลิส

แหง่ล่ะ ขนาดใช้โฮสดูด ยังกินเวลาเป็นเกือบ หลายสิบชั่วโมง

ดูดไป 2 วัน แล้วรีบเอาไฟล์ออก  พอวันที่ 3 โดนซะ  :D
อีเมล์ใหม่สมัครใหม่  ::)

okgofun

ขอบคุณทุกๆคนมากครับ

ผมลองรันดูใน localhost หนะครับ พออัพขึ้น server แล้วรัน ยิ่งช้ากว่าใน localhost อีก

ที่สำคัญต้องมาปรับ max_execution_time ด้วย ผมเทสโดยการดึงข้อมูลครั้งละ 5 pages ของเว็บบทความครับ

เอ? แบบนี้ถ้าใน server ที่เราเช่า มันปรับ max_execution_time ไม่ได้ แล้วเราจะดึงบทความได้เหรอเนี่ย (กรณีต้องการดึงครั้งเดียวทีละมากๆเลย)
จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน

Tee++;

แก้ปัญหาได้หลายอย่างมาก
1.ใช้ cURL ปลอม Header เข้าไป
2.ใช้ cURL ใส่ Proxy เป็นเกราะเข้าไป โดยวนสักหลายๆ ตัว
3.ใช้การ refresh แบบนับจำนวน Record ครบ 50 แล้ว รีเฟรชมาเริ่มกันที่ 51 ต่อ
4.ใช้ asleep หรือ sleep มาหน่วงเวลาไว้ โดยอาจจะใช้ร่วมกับ flush หรือ ob_implicit_flush()

จะเอาไป mix รวมกันก็ไม่ผิดกติกาแต่อย่างใด

ส่วน library ที่ใช้กับ cURL ได้ดีๆ มี 2 ตัว

1. snoopy ตัวนี้สุดยอดแต่ลงยาก เพราะต้องลง cURL แบบ ไม่ใช่ ext ของ php ไม่งั้นมันจะกลายเป็นการทำงานแบบ fsock แทน ทำให้ไม่สามารถดึงขอ้มูลแบบ https ได้

2. class.curl อันนี้ลองหาดูใน phpclasses.org เป็น library แต่ก็แค่การทำให้คำสั่งสั้นลง จริงๆ เป็นการใช้ความสามารถ cUrl ของ php เท่านั้นเอง เรียกว่า พอถูไถ

เรื่อง Execute Time Limit ให้ใส่คำสั่งนี้ไปบนหัว

@set_time_limit(0) หรือใช้คำสั่ง refresh แบบที่บอก
[direct=http://laravel.in.th]Laravel in Thai[/direct]
[direct=http://jquerytips.com]jQueryTips by Tee++;[/direct]
[direct=https://www.facebook.com/jQueryTips]jQueryTips Page[/direct]
[direct=https://www.facebook.com/Laravel.in.th]Laravel in Thai Page[/direct]
[direct=https://twitter.com/Teepluss]Teepluss's Twitter[/direct]


amaudy

เพราะเรื่องดูดๆเนี่ยแหละ
ทำให้ผมกลับไปใช้ Perl/LWP รันบน VPS แทน

สะใจหลายเด้อ T-T

okgofun

อ้างถึงจาก: Tee++; ใน 10 สิงหาคม 2007, 15:16:17
แก้ปัญหาได้หลายอย่างมาก
1.ใช้ cURL ปลอม Header เข้าไป
2.ใช้ cURL ใส่ Proxy เป็นเกราะเข้าไป โดยวนสักหลายๆ ตัว
3.ใช้การ refresh แบบนับจำนวน Record ครบ 50 แล้ว รีเฟรชมาเริ่มกันที่ 51 ต่อ
4.ใช้ asleep หรือ sleep มาหน่วงเวลาไว้ โดยอาจจะใช้ร่วมกับ flush หรือ ob_implicit_flush()

จะเอาไป mix รวมกันก็ไม่ผิดกติกาแต่อย่างใด

ส่วน library ที่ใช้กับ cURL ได้ดีๆ มี 2 ตัว

1. snoopy ตัวนี้สุดยอดแต่ลงยาก เพราะต้องลง cURL แบบ ไม่ใช่ ext ของ php ไม่งั้นมันจะกลายเป็นการทำงานแบบ fsock แทน ทำให้ไม่สามารถดึงขอ้มูลแบบ https ได้

2. class.curl อันนี้ลองหาดูใน phpclasses.org เป็น library แต่ก็แค่การทำให้คำสั่งสั้นลง จริงๆ เป็นการใช้ความสามารถ cUrl ของ php เท่านั้นเอง เรียกว่า พอถูไถ

เรื่อง Execute Time Limit ให้ใส่คำสั่งนี้ไปบนหัว

@set_time_limit(0) หรือใช้คำสั่ง refresh แบบที่บอก

สุดยอดเลยครับพี่ ขอบคุณครับ เดี๋ยวจะลองๆดูครับ ว่าแต่ผมลองหาใน phpmanual มันมีไม่ค่อยครบเลย บางทีก็ไม่ละเอียด แต่ก็ยังดีครับ ลองไปเรื่อยๆมั่วๆเสียเวลามากหน่อย แต่ก็สนุกดี  :D
จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน

EThaiZone

อ้างถึงจาก: Tee++; ใน 10 สิงหาคม 2007, 15:16:17
3.ใช้การ refresh แบบนับจำนวน Record ครบ 50 แล้ว รีเฟรชมาเริ่มกันที่ 51 ต่อ

ผมใช้ข้อนี้ รันทิ้งไว้เลย

แต่สักพักก็หยุด อีกสิบนาทีค่อยมาต่อ อะไรแบบนั้น

okgofun

อ้างถึงจาก: EThaiZone ใน 10 สิงหาคม 2007, 18:05:08
อ้างถึงจาก: Tee++; ใน 10 สิงหาคม 2007, 15:16:17
3.ใช้การ refresh แบบนับจำนวน Record ครบ 50 แล้ว รีเฟรชมาเริ่มกันที่ 51 ต่อ

ผมใช้ข้อนี้ รันทิ้งไว้เลย

แต่สักพักก็หยุด อีกสิบนาทีค่อยมาต่อ อะไรแบบนั้น


แจ๋วครับ เดี๋ยวผมลองมั่ง ลองๆคำสั่ง sleep ให้มัน delay ดูแล้วก็โอเคเลยครับ แต่ต้องอย่างต่ำสัก 15 วินาที แบบนี้ทำให้ต้องรอแย่เลย แต่ก็ยังดีกว่าไมได้  :( แหะๆ    :P
จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน