Skip to content
View in the app

A better way to browse. Learn more.

Web Designer Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Really fed up with spam

Featured Replies

Ok so today i got literally 20 banner submissions from same person same email, using this page http://www.submitbannerusa.com/add_banner.php is there any possible way to black list these people using the info they give in an effective way?, i finally changed where only one person can submit a banner from a given email after that it has to be a different email this has worked some but not fully, so please any advice would be grateful.

hey,

 

Using a diffrent capatcha would help, the version your using is easy for OCR to figure out. ReCapatcha is good, you can make it look diffrent.

 

also checking that the Reciprocal Link is on the other website would be a plan, could make a cron to check them once a month... or like daily until they earn a trust rating to goto monthly checks or what ever.

 

also are you doing proxy detection, you could not show the page through a proxy (if its in the HTTP headers).

 

thats some ideas

  • Author

hey,

 

Using a diffrent capatcha would help, the version your using is easy for OCR to figure out. ReCapatcha is good, you can make it look diffrent.

 

also checking that the Reciprocal Link is on the other website would be a plan, could make a cron to check them once a month... or like daily until they earn a trust rating to goto monthly checks or what ever.

 

also are you doing proxy detection, you could not show the page through a proxy (if its in the HTTP headers).

 

thats some ideas

mmm could u give me an example of checking if the other website has a reciprocal link? i've never wrote any code to do such things before so it would be a great help, and also maybe an example on the proxy thing as well. Thanks in advance

the first bit is just simple string searching, grab the html with curl, streams or just use file_get_contents()

 

$html = file_get_contents('http://google.com');

 

the other, put this code on a random page and view it from diffrent places. take note that the REMOTE_ADDR will be that of the proxy and the extra headers avalible.

 

echo var_dump($_SERVER,http_get_request_headers());

  • Author

the first bit is just simple string searching, grab the html with curl, streams or just use file_get_contents()

 

$html = file_get_contents('http://google.com');

 

the other, put this code on a random page and view it from diffrent places. take note that the REMOTE_ADDR will be that of the proxy and the extra headers avalible.

 

echo var_dump($_SERVER,http_get_request_headers());

 

prob a dumb question but how exactly do i search whatever sites contents i pull using file_get_contents for my reciprical link?

Isn't it possible that you can capture every single email and store those emails into yoour database.

Then code up the way once contact form been used to many time by this email that it will just get blocked?

prob a dumb question but how exactly do i search whatever sites contents i pull using file_get_contents for my reciprical link?

 

Since you're looking for an exact match for your domain, I'd use stristr for performance (it's considerably quicker than the regex functions). Of course, that would match your URL in plaintext. If you wanted something more comprehensive, you could use a regex function to pull the content of all href attributes from the page, then search that for your URL.

i wouldnt block if one email is used to much as it would be stopping legit people who just want to use the system alot, adding a time value so like 2 submitions within 30 seconds... but its better to add a pause to the users session than the below.

SELECT COUNT(id) FROM banners WHERE email = '' AND timestamp >= (time()-60);

 

and for the searching, im delibratly not telling you, so that you google search how and learn... really the php manual is legandary, if the page dosnt say what you need its likley the comments will!

 

http://php.net

  • Author

i wouldnt block if one email is used to much as it would be stopping legit people who just want to use the system alot, adding a time value so like 2 submitions within 30 seconds... but its better to add a pause to the users session than the below.

SELECT COUNT(id) FROM banners WHERE email = '' AND timestamp >= (time()-60);

 

and for the searching, im delibratly not telling you, so that you google search how and learn... really the php manual is legandary, if the page dosnt say what you need its likley the comments will!

 

http://php.net

actually i did figure out the searching :) my host has where file_get_contents cant be used so i made a solution using curl and it works perfect

 

public function RecipCheck ($my_url,$target_url){
$userAgent = 'Googlebot/2.1 (http://www.googlebot.com/bot.html)';

// make the cURL request to $target_url
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
curl_setopt($ch, CURLOPT_URL,$target_url);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$html= curl_exec($ch);
if (!$html) {
return false;
}

// parse the html into a DOMDocument
$dom = new DOMDocument();
@$dom->loadHTML($html);


// grab all the on the page
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");

// find result
$result = $this->LinkCheck($hrefs, $my_url);

if ($result == 1) {
return false;
} else {
return true;
}
}


public function LinkCheck($hrefs, $my_url) {

   for ($i = 0; $i < $hrefs->length; $i++) {

       $href = $hrefs->item($i);

       $url = $href->getAttribute('href');

       if ($my_url == $url) {

           $rel = $href->getAttribute('rel');

           if ($rel == 'nofollow') {

               return 2;
           }

           return 3;
       } 
   }

   return 1;
}

 

and imma work with that timestamp thing to, but as far as i can tell the same spammer came back today i could tell from his logged ip and he tried various times to get past the reciprical link check and never got through so that deff worked alot thanks again

  • Author

The reciprocal link is fine when approving accounts. However, you really need to be checking them on a semi regular basis to avoid the SEO spammers. IF you;re literally only doing a one time check I could:

 

  • Signup for account
  • Add reciprocal link on one of my sites
  • Get account approved and then remove link
  • This would result in a one way back link (followed I assume) that WILL attract spammers, and masses of them

mmm true i plan on having in my admin panel where i can run a check everyday or every other day to see if the links are still on the submitted sites

could make a cron to check them once a month... or like daily until they earn a trust rating to goto monthly checks or what ever.

 

i would automate it with crons if i were you.

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.