Depending on the purpose and features of your website you may find yours bombarded by SPAM from Russia, China or other countries where you do not offer your service or goods. At Intrepid Network we have put together a custom solution for our clients that look something like the following.
Incoming Email
Shown here is a screengrab of how to block spam, using your email settings, from different domains, email addresses and ip addresses.
Website Registration Form
Intrepid Network installs and configures Restrict Domain Registration. An extremely light weight module which either allows or restricts registration on your site based on the persons email address domain. I added the ability for you to add more domains. You can access the settings page from your admin menu: Configuration > System > Domain registration.
Website Contact Form
And, Intrepid Network installs and configures Block Anonymous Strings. This light-weight module enables opting in of any text field or text area of nodes, webforms and comments for validation against the pre-defined undesired regular expressions to automatically deny anonymous submissions when such strings are detected.
The Block Anonymous Strings module also supports Drupal's native site-wide and users' personal contact forms.
If an anonymous user tries to post a webform, node or comment with a text field or a text area value that contains an undesired string, then the submission is declined giving a preset error message.
You can access the settings page from your admin menu: Configuration > Content authoring > Block Anonymous Strings.
Website Domain
Additionally, Intrepid Network uses Cloudflare Country Block on our website as well as on our clients who have https setup.
This module helps you to block entire countries from visiting your site (and generating massive page load), if you are using the free plan of Cloudflare protection.
Cloudflare adds a header information containing the originating country code, on which we can effectively block these requests.
You'll need to signup for the free Cloudflare for your secure certificate (SSL) which will add the "s" to https:// -OR- you can leverage Intrepid Network's service and just update the DNS for your domain with your registrar.
Note that using https will improve your rank in search engines as well.