Blog Home

How much Traffic is too much Traffic for CloudFlare?

Evidence suggests it's 100TB per month.

Before I go into the details I want to state two things first:

So the reason I'm writing this is not because we were kicked (after all, CloudFlare was in the right to do so), but because of how shitty it went down.

For the last 6 years some friends and I have been operating this site that collects images posted in chat rooms on Quakenet IRC. The content gathered is somewhere between reddit and 4chan. It's purely a hobby project - I tried to monetize it through ads some time ago, but failed. Advertising-Networks don't want us as a customer, but I'm fine with that.

Until about a year ago, the site was running fine on a single dedicated server. However, bandwidth consumption was becoming a problem. At times the server's (unmetered) 100mbit/s connection was completely saturated. We've been growing quite a bit.

So we looked for a solution and stumbled upon CloudFlare. Their free plan was exactly what we needed. We didn't want any of the "speed" optimisations, but just their distributed loading to serve our images. It was extremely easy to set up and just worked. In disbelief I commented on HN that I don't understand how they could offer their service for free and that we'd happily pay a few hundred USD (screenshot, orig thread).

In that same comment thread I also expressed my concern that we're somehow using CloudFlare in a way that it was not intended for, but I was assured by CloudFlare's jgrahamc that it's fine. I was later told that jgrahamc's comment was made in error and that our usage was indeed against CloudFlare's TOS (Section 10: Limitation on non-HTML caching).

(Running the whole site through CloudFlare wouldn't make that much sense to us, because it's just one single HTML file, one CSS file and one JS file - about 70kb in total - everything else comes from a JSON API. We never load another HTML file. However, we would happily have enabled it for these files as well, if CloudFlare wanted us to. I suggested this on numerous occasions.)

Everything was running fine until Jan 22. 2013 when suddenly all images on our site didn't load. Opening an image URL directly showed that instead of the image, an HTML site was returned. This site is part of CloudFlare's DOS protection. It's an interstitial that intents to sort out bots.

However, we initially turned off CloudFlare's security settings, because a) if someone wanted to attack us, they'd send automated search requests to our backend and not try to load lots of images and b) CloudFlare just serves images; the interstitials they present would only be presented as broken images.

Logging in into CloudFlare I discovered that the security setting miraculously was changed from the lowest setting ("Essentially off") to the highest ("I'm under attack"). I never received any notification or explanation for the change. I switched it back and everything was running fine again, so I believed it was a fluke.

On Feb 1. CloudFlare completely disabled their service for us and sent all visitors directly to our main Server. The site was now unusably slow so I replaced it with a "Sorry, we'll be back soon" site.

When I logged in into CloudFlare, I was greeted by a notice:

CloudFlare has been temporarily disabled due to a system issue. To ensure there is no performance degradation to your website, we are temporarily routing all traffic directly to your server. Once peak performance is back, we will automatically re-enable CloudFlare.

Again, we were not notified about this by email or any other way.

I waited till the next day, then contacted CloudFlare, asking when we can expect the service to be back. They told us that it's not a "system issue", but that our site was under a "layer 7 attack":

Our operations team routed your site off CloudFlare because was seeing a large layer 7 attack that was negatively impacting other CloudFlare customers. They will review and re-enable the site automatically and no further contact is required.

CloudFlare never enabled our site again.

Curiously, at this time our CloudFlare stats boldly proclaimed "103TB traffic saved by CloudFlare in the last 30 days". Remember the site was disabled on Feb 1. It was the first month our traffic grew beyond 100TB, so I suspect that "layer 7 attack" is a sleazy term for "too much traffic".

On that weekend I talked to their support a bit more and was told that, based on our traffic, we need to be at least on the business plan ($200/mo) - which I would have agreed to - but was assured that someone else would talk to me again on Monday.

One week passed with no answer (I asked a few times), then, yesterday I was contacted again. They apologized for the delay and then told us:

At 100TB/mo., pure file delivery, you'd need to be an Enterprise customer. Let me know if this works within your budget.

The Enterprise plan comes at $3000/mo.

So CloudFlare disabled our site because of a "layer 7 attack", then let us in limbo for two weeks, where we couldn't commit to another solution, only to tell us we need to pay $3000/mo in the end.

We now ordered two servers from Leaseweb in NL, each with 1Gbit uplink and 100TB traffic included to run varnish caches and serve the images. These cost us $200/mo in total.

Wednesday, February 13th 2013


#1matt – Wednesday, February 13th 2013, 19:02

That's pretty crappy of them.

As an aside, you might want to look into losslessly optimising your images using JpegOptim, jpegrescan, jpegtran, pngcrush, etc. You can try these tools out as part of ImageOptim on Mac OS X.

The result would be reduction of your image file sizes by around 20%, and even better in the case of the smaller images. Obviously, that would ease your bandwidth usage.

#2Hartley – Wednesday, February 13th 2013, 19:11

I think this is probably what they meant by "Layer 7" attack. It's a technical terms, not a marketing one.

#3Matthew Prince – Wednesday, February 13th 2013, 19:27

This was flagged to my attention and I've reviewed all the interactions between you and our team. You were using the free version of CloudFlare's service. On February 2, 2013, your site came under a substantial Layer 7 DDoS attack. While we provide basic DDoS mitigation for all customers (even those on the Free CloudFlare plan), for the mitigation of large attacks you need at least the Business tier of CloudFlare's service. In an effort to keep the site online, our ops team enabled I'm Under Attack Mode, which is available for Free customers.

The attack continued and began to affect the performance of other CloudFlare customers, at which point we routed traffic to your site away from our network. While we encouraged you to take advantage of the Enterprise tier of service given your needs and traffic levels, your site would have been brought back onto CloudFlare's network if you upgraded to the Business tier of service ($200/mo) which included Advanced DDoS mitigation.

I am sorry for the confusion. To be clear, we do not bill based on traffic. However, resources are not infinite and when an attack against a Free customer begins to affect the performance of other customers we will take measures to protect the overall integrity of the CloudFlare service.

Best wishes,
Matthew Prince
CEO, CloudFlare
@eastdakota (Twitter)

#4Dominic – Wednesday, February 13th 2013, 19:41

Matthew: thanks for responding. I offered multiple times to upgrade to the Business plan, but was ignored. Also, if you change a site's setting, you should probably notify the account holder about it.

I didn't notice any "attack" when CloudFlare began to route all traffic directly to us. It looked like normal web traffic - much of it, but no more than usual.

#5 – Travis – Wednesday, February 13th 2013, 19:54

lol cloudflare rep (oops, CEO) keeps calling it an attack.

#6Matthew Prince – Wednesday, February 13th 2013, 21:01

I've reviewed the logs. There was definitely both a Layer 4 and Layer 7 attack. I don't know how long the attack lasted after we routed traffic directly since, obviously, we were no longer receiving logs. It may be that traffic is not being captured in your typical server logs. We pull both sflow data (off our routers and switches) as well as web server logs in order to detect attacks.

While we recommended the Enterprise level plan, if you had upgraded to Business you would have been brought back onto our network. I apologize if that was not clearly communicated.

#7sarth – Wednesday, February 13th 2013, 21:20

@Matthew Prince the customer service problems OP detailed supersede the technical issues you are reiterating. Unless OP grossly misrepresents the interaction, you failed to communicate with him, while essentially bringing his site down. And you never really rectified it.

I started out reading this post thinking "Oh yeah, I should move my stuff over to cloudflare ... and anyway I don't do anything like that amount of traffic" to thinking "no way, this would be nightmarish" again, NOT because of the pricing tiers and TOS, but because of the lack of communication and inaction.

#8Hartley – Wednesday, February 13th 2013, 21:50

Sorry, this was the link I thought I had included earlier. ^

#9 – warrenski – Wednesday, February 13th 2013, 21:55

LeaseWeb is awesome! We've been with them for the past 2 years and they're rock-solid.

#10 – fnord – Wednesday, February 13th 2013, 22:40

This sounds like a layer8 problem at CloudFare more than anything else.

Free plan or not, you don't just cut people off without even giving a notice. What tells me you don't do the same when I exceed some unknown limit on my "Business" or "Enterprise" plan?

#11Matthew Prince – Wednesday, February 13th 2013, 22:54

Both enabling "I'm Under Attack Mode" or routing the traffic direct are both supposed to generate an automated message to the customer letting them know what happened. We've reviewed the logs and don't see a message having been sent. I'm investigating why that didn't happen since I agree it is not acceptable.

#12 – splurge – Thursday, February 14th 2013, 00:15

This is an example of a customer service fail not only in the initial correspondence, but also in the CEO's response. Even though you were a non-paying customer, his response should have been, "I'm so sorry for the confusing and inconsistent communication you experienced, and especially the downtime. We're working to find out why you received incorrect and conflicting information and why we didn't communicate the situation more effectively. If there's any way we can make this right and you'd consider returning as a customer, please call me at (xxx) xxx-xxxx."

Instead, the CEO's response sounded defensive and almost accusatory ("your site would have been brought back onto CloudFlare's network if you upgraded to the Business tier of service ($200/mo)"). This despite the fact the user reported he told customer service he'd be willing to pay at that level.

Customer is always right. Unless you don't want them to be your customer anymore.

#13 – thp – Thursday, February 14th 2013, 01:57

@splurge: I think this is one of the best answers a company can give in such a situation, what else do you expect?
100TB is plenty IMHO and yes, there seem to be some problems - which the CEO already gave in.

#14 – John SMythe – Thursday, February 14th 2013, 01:57

A customer is a person who pays for a service. Someone who doesn't pay for a service (yet) is a *lead*. Not all leads are good business. 100TB of traffic does not sound like a good lead to me, not even at the $200 level.

For the record, I am not a shill for the company, just a happy CloudFlare user, nowhere near the usage levels of the OP, and I appreciate that CloudFlare thinks of other customers on the network. I'm actually baffled that I get for free what I do. Before a friend recommended CloudFlare, my site was attacked frequently, and taken down by my hosting company several times. I still see those attacks in the CloudFlare logs, but my site hasn't been down in a looooong time.

Looking at your site, I see an IMGUR clone which was running for free off of CloudFlare's servers. I really don't understand the nonsensical comments above. WTF is wrong with people these days thinking that everything is supposed to be free? Are you all 16 and on an weekly allowance?

Matt also has a very valid point that some sort of optimization of the stored (cached) files would have been a smart option for yourselves (less local storage) as well as CF (less to cache, less bandwidth). I can recommend (Oh wait, it's not free, now what...)

#15Patrick Davison – Thursday, February 14th 2013, 02:20

I doubt Mathew is looking at this as a 'Oh no, lets keep a customer', instead more like 'Oh crap something went wrong, let's find out what'. And I believe his responses are in line with that. - I also believe this is how a CEO should look at it; a rep can give you that cookie-cutter style response that @splurge posted.
I personally use Cloudflare, It's been simple, trouble-free, and covering 80% web-requests and 35% bandwidth (Not to mention almost 20% faster site load). If you're reading this topic and thinking like @sarth "no way, this would be nightmarish" - put cloudflare test, and see if you're not thinking "This is free!?".

#16 – Tom – Thursday, February 14th 2013, 04:32

Maybe its just me, but something like AWS Cloudfront doesn't care if its images or whole site, that's what I would end up using.

#17Peter Edmunds – Thursday, February 14th 2013, 04:54

"This is free!?" is the only possible reaction from any sane person to the range of services that Cloudflare provide with their free plan.

Try to get it all free anywhere else. Doubt it.

Complain about getting huge amounts of free stuff because the company's response is a bit geeky? Great idea, really annoy Cloudflare so they drop the free plans for the minor MiBs per month accounts like me.

#18 – Cory Wong – Thursday, February 14th 2013, 06:34

The review for LeaseWeb hasn't been great. Anyone else use their service? Any comment about theri service?


#19 – quarkie – Thursday, February 14th 2013, 10:40

You know, leaseweb's 100TB servers, also very clearly state, that the 100TB servers cannot be used as Content Delivery Networks, caches or streaming servers. It seems you have a problem at reading each service rules! Bandwidth is not cheap, and you will probably have problem with Leaseweb too at some point

#20Dzik – Thursday, February 14th 2013, 11:44

If you want something for free, check CoralCDN ... just make sure it will get your needs (

#21 – Stéphane – Thursday, February 14th 2013, 16:43

@Dominic: Why don't you just route your image traffic through cloudfront? It would cost you 8$ for the bandwidth plus $0,0075 per 10K requests

#22Dominic – Friday, February 15th 2013, 02:34

@Stéphane you probably misread GB for TB? According to the cloudfront website ( ), the price per GB in Europe is $0.12. At 100TB, or 100,000GB per month that's $12,000, not $8 :)

#23 – Curtis – Friday, February 15th 2013, 03:59

Blah blah attack blah ...

Blah blah free blah blah...

I don't think this is systemic, but I also don't think this is trivial. CloudFlare's "engineers" messed up. That's not the CEO's fault, even though he's out here damage-controlling. That's the fault of some dummy (or dummies) in the NOC at CloudFlare. Or perhaps some programmer who didn't test his "customer alerting auto-messaging" script enough. CloudFlare is still pretty awesome on the whole, especially considering you don't pay a penny for what you get. Look at it this way: You could be running a Rails project on Heroku........

#24 – Andre – Tuesday, March 5th 2013, 19:43

I agree cloudflare is awesome. But if you look at the whole picture this seems like "lets get loose of that unprofitable customer". Support tells him he has to pay 3000USD for the enterprise plan and then after a blog post the CEO says all that lack of communication (and probably lies and procrastination) was a mistake and the 200USD plan will be ok. Who are you kidding? You disagreed to the 200USD plan because this customer just is not profitable and never will be (traffic will probably go even up more). If cloudflare had nuts they just admitted they dont want dominic as a customer and told him that instead of playing those unprofessional games.

#25 – Thelen – Monday, April 15th 2013, 08:30

@ quarkie ah I was going to say the same thing.

#26 – Jack – Sunday, May 19th 2013, 21:35

Cloudflare is looks like an insurance company.
You pay them when every thing is normal to protect you when something goes wrong.

But cloudflare get your money and once some DDOS attack happen they cut your website down and send all traffic directly to your server...

They only protect their brand customers, such as Spamhaus... If a DDOS attack use 50-60TB of their bandwidth, then you are done, Only enterprise customers can survive, Their enterprise plan start at $3000 and goes up $2500 for each additional 100TB

#27 – Mark – Monday, June 3rd 2013, 06:57

So you weren't paying Cloudflare anything, got 100TB of free bandwidth, mitigated a DOS attack, but now you're pissed off and upset because they wouldn't provide exceptional service to a non-paying "customer"?

#28Merlijn – Monday, June 10th 2013, 13:33

For me it's unclear whether Cloudflare only served the images (CDN) or served and hosted the images. If you hosted the images on Cloudflare it would be a clear violation of their section 10: limitation on non-html caching. But then they should have told you at the beginning when you asked for it.

At the end they just don't want a customer like you and they should have told you so. But you could have known, there is no such thing as a free lunch!

#29 – Anonymous – Friday, July 26th 2013, 18:15

I think some of these comments are ridiculous.

Regardless of how poorly handled the customer service might have been, they were providing you with 100 TB per month for FREE!

That's a ridiculously good offer.

#30Knifeineye – Tuesday, July 30th 2013, 00:07

Don't fool yourself with the"good intentions" of the cloudflare group, it's a simple extortion racket based on the drug-dealer model - they give you something for free (DNS & cache), get you hooked (fast access & lots of page views for a time), then start demanding money for the previously free stuff (ooh, your under attack... maybe if you upgrade to business or enterprise your site will be OK). All you internet dependent types should wake up and smell the coffee, if it's run by a lawyer it's a criminal enterprise.

#31saintluci – Thursday, August 8th 2013, 02:13

The poster really has entitlement issues just like most of the Americans who now live on dole outs from their bankrupt government.

If you do not like the service, get out. Don't hide behind your reason that you offered to pay and they disregarded you. Or they did not notify you when they shifted your site. You weren't paying in the first place.

Maybe they do not like you as a customer. And based on what I read, I would rather have a reasonable customer over someone who acts like a spoiled brat - just like those Americans living on charity from their bankrupt government.

#32 – David – Monday, August 12th 2013, 19:32

Wow... Cloudflare employees are very active at this article.

If you want to defend your company, Defend it in a professional way with your REAL name and position in the company...

Tired of reading comments that fully take Clouldflare side with out any logic...

Clouldflare! Your reputation manager sucks!!!

#33 – Sissy Mendelstein – Tuesday, September 24th 2013, 17:29

I am thinking of getting Cloudflare and after reading this article

#34 – Peter V – Saturday, October 5th 2013, 04:02

I just activated cloudflare on one of my sites (the option one level above free). It decreased my site load time by about 40%.

Im pretty psyched about it.

Just my 2 cents, at this point

#35 – Kim – Tuesday, October 8th 2013, 02:51

After reading, the comments here, I've decided to become a Cloudflare customer. I came here expecting to be convinced not to use their service, but was honestly surprised by how well the haters of Cloudflare argued FOR the service.

Really, attacking the character of those from Cloudflare responding to the post just sounds like you can't actually find fault in their responses. I can't really find fault in them either. Heck, even the OP admits they are in the right. Meanwhile, a lot of the 'arguments' against Cloudflare are merely character defamationposts. "Oh, they're scammers. Oh, they're an insurance company. Oh they're run by lawyers." Not only do these arguments not give any reason to me to not use Cloudflare, they're also blatantly insinuating that all insurance companies and lawyers are scammers, which is definitely not the case.

(A lawyer pro-bono helped put the rapist of a loved one behind bars forever, and an insurance company paid entirely for her stay in the hospital, so I'm sure not all of them are.)

Sure, it's kinda crappy that there was a huge miscommunication issue, but Cloudflare already apologized and followed the case up even when OP is no longer a customer of theirs. Good enough for me.

#36indolering – Wednesday, October 23rd 2013, 10:15


Right-on man, this thread is mind blowing in how little respect people have for what CloudFlare has done for the web. I mean, they essentially showed up and extended some really advanced caching and other resources to everyone for free. In the process, they have made the web faster, safer, cheaper and more stable place. For their support staff to take the time to hit a comment thread and personally review a case file for a freemium customer whom was violating their TOS is pretty amazing.

The only thing that could have made the process smoother would be to automate the notification process and offer upgrades when support tickets started to drag on. It's painful for everyone when you can't afford to help a customer but keep doing it anyway. Had Cloudflare more been able to show logs that would have convinced the OP an actual attack was underway and explain the limits of the service, s/he would have paid right away. The real problem was the 1:1 customer support!

Anyway, stop accusing CloudFlare of being part of some conspiracy. They are one of the good guys, okay?

#37Don Omondi – Friday, December 6th 2013, 02:05

I landed here by googling Cloudflare Enterprise...

I have been a customer for about a year now with 3 of my personal sites all on their free plan. I recently upgraded one of my sites and expect a surge in traffic, nowhere near 100TB per month but a few 10's of GB. I got a free ssl cert from and sadly, cloudflare's free plan does not support ssl so I had to pause all my sites...until my sites can generate money from their services and not my pocket.

Anyway, I just wanted to comment and say that cloudflare has been a wonderful service thus far, can't complain, does what they say, reduce bandwidth server load etc... but anybody thinking that the situation that the blogger in question was not mishandled is fooling themselves. I will still be a Cloudflare customer despite reading this because I can understand why they did it just not how they did it. Credit to CEO for trying to put out the fire, but being a tech guy I thought he of all people would know that talking over the internet only fuels the fire.

#38Mvn – Wednesday, December 11th 2013, 03:29

CloudFlare is an exceptional service which, honestly, shouldn't be free. The amount of features and service you get as a Free customer is unheard of! We've been using CloudFlare for nearly two years and have only had one or two minor hiccups.

They have an amazing service and an amazing customer support team. Plus the fact the CEO responds to issues first hand? Amazing.

Seems like this situation was a case of "I want more" with the stipulation of it being Free.

#39Pon – Wednesday, January 8th 2014, 12:07

I am using cloudflare for the past few months. It is undoubtedly a great service and User interface is good also.

After using the CDN, My site load time is reduced vastly. We really apreciate what they offer as free.

Even if my traffic doesnot touch 1TB/ YEAR, whatever they offer is free and I could not find anyone who gives this service free of charge.

#40 – RS – Sunday, January 12th 2014, 01:42

The shills posting here are really not making cloudflare look better ...

#41Jorge – Sunday, January 19th 2014, 16:24

If before I hesitated about Cloudflare use, now Im sure thats the company I do want to use for CDN support. 100TB use for free and youre complaining?? and even more so; a Cloudflare rep enters the conversation and almost appologizes for the situation.
I sure dont understand why youre complaining, really, and more so, youre dammaging us because could force Cloudflare for stop being free on small websites that we happily use. Totally uncalled critic to them..

#42 – Jay – Thursday, March 13th 2014, 03:49

The main problem that I see here is that Cloudflare ostensibly does not charge for bandwidth, but they don't make it clear either that you're not supposed to be caching images with them.

In this blog post here, it seems like hosting images is legit and sanctioned by Cloudflare ("option 2"):

But if you cross the hidden 100 TB threshold, you're cut off until you pay up. That seems unfair at best, and like bait-and-switch at worst.

Given that CDNs such as Amazon CloudFront charge 12 cents / GB, it's surprising that Cloudfront seems to be giving away it's service for free.

While CloudFlare provides valuable free and paid services, they really need to improve transparency around their terms of use and charges.

#43 – Jay – Thursday, March 13th 2014, 03:51

Sorry for my sloppy editing in my previous comment. What I meant to say was:

Given that CDNs such as Amazon CloudFront charge 12 cents / GB, it's surprising that Cloudflare seems to be giving away its service for free.

#44Shahnawaz @current affairs 2014 – Saturday, April 5th 2014, 21:29

I am planning to have a account on CloudFlare but they are asking about ftp,dns server etc details which is quite risky I guess.So could you guide on this.Should I signup there ?

#45xam segdoh – Friday, May 30th 2014, 09:00

Could it be possible that CloudFlare orchestrates DDOS attacks to convert leads into paying customers?

#46David Scarpitta – Tuesday, June 17th 2014, 12:04

I can say that we happily use Cloudflare for our own ecommerce platform that had attacks daily and we have seen serious improvement in performance and reliability. We pay for the smaller plan, but I have no qualms with that.

#47 – sinelogix technologies – Friday, July 18th 2014, 11:19

thanks for such a good info . same question is it safe to sign up there because they need so much information

#48 – Triedtested – Monday, September 1st 2014, 21:57

What is all this rubbish. I have been using cloudflare free for a year and now have the $20 a month plan.

What are all these girls moaning about ?

For free this service is amazing and it hasnt let me down once.

I had 6 hrs downtime the other day and I still converted as many sales because cloudflare kept my cached pages going.

My site only has 3000 a day and in 2 years i have had no problem at all with cloudflare. Even if there is a problem you just change you nameservers, i dont see what all the fuss is about.

Lets clear this thread up

So a spam master leech abused cloudflare. He came on here to moan. The ceo told him to screw himself and stop ruining the service for people who pay and or who use it fairly.

Cloudflare is great for me

Maxcdn is no use unless your host is complete rubbish or you have 10,000+++ global traffic a day

#49 – Tom – Sunday, September 7th 2014, 09:27

Yeah, it looks great until you read the terms of service.

"CloudFlare reserves the right to investigate you, your business, and/or your owners, officers, directors, managers, and other principals, your sites, and the materials comprising the sites at any time. These investigations will be conducted solely for CloudFlare's benefit, and not for your benefit or that of any third party."

Plus they talk about the right to add ads, and do just about anything they please to your website. While they keep the sole remaining right to shut off the service at any time without notice.

Thanks, but no thanks.

#50J. C. – Thursday, November 27th 2014, 15:19

I use Cloudflare for my personal blog and happy with them.
But my blog just receiving slim traffic by now.
I'll keep looking for another solution in case something bad happen to my blog. :)

#51George Chalhoub – Wednesday, December 3rd 2014, 07:05

I don't get it. You expect Cloudflare to save you 100TB of bandwidth while pay only 300$. This doesn't make sense. Nothing is for free. Cloudflare was extremely generous to you.

#52Got Picture Got Talk – Friday, December 5th 2014, 15:07

We use CloudFlare for a couple of years and found the service to be stable and save us a great deal of bandwidth cost so paying $200/month is still a good deal, try doing that with CloudFront or MaxCDN and you'll be paying through your nose.

#53Arama Motoru – Wednesday, December 17th 2014, 22:49

I am using Cloudflare's free plan for 20 of my sites. Saves me tons of bandwidth and protects me at least from lamers around.
At some point I feel guilty about using their services for free and this week I will buy a Pro package ($20) for my main web page. These guys are awesome and for a business to go on, money has to flow.

Post a Comment:

Comment: (Required)

(use <code> tags for preformatted text; URLs are recognized automatically)

Name: (Required)


Please type phoboslab into the following input field or enable Javascript. This is an anti-spam measure. Sorry for the inconvenience.