In testing CL mode, I notice that once I've verified my email address I can post as many nodes as I like without being verified again (the module responds to the post with "Your email has been activated previously." and doesn't send out a verification email).

This opens up a vulnerability in that a third party that somehow gains knowledge of my having successfully verified and published a node can now spoof my email address to post whatever it likes.

Wouldn't it make more sense to check against both the email address AND the IP address of the submitter to determine that the previous verification can be safely reused?

Comments

gisle’s picture

Wouldn't it make more sense to check against both the email address AND the IP address of the submitter to determine that the previous verification can be safely reused?

  1. The CL mode is not designed to provide optimal security. It is an anti-spam measure that improves upon the standard method provided by Drupal for allowing the "Anonymous" user to create content. The improvement is that a valid and verified address must be supplied in order to post as "Anonymous". On my sites, at least, this has proved to be more effective than CAPTCHA as an anti-spam measure.
  2. The posts created using CL mode are by default not publicly associated with any user ID. If someone spoofs an email-address to create content, the content will have the byline: "Anonymous".
  3. Anyone can post as "Anonymous" if they are able to supply a valid email address. Why should anyone spoof an email-address to create content as "Anonymous" when they can do exactly the same thing using an email-address (provided they validate it once) they legitimately own?
  4. Craigslist, which is the "inspiration" for the CL mode, has worked like this for many years. AFAIK, it does not suffer any "spoofing"-problems originating from this. (Craigslist have a problem with spoofed phishing emails pretending to come from Craigslist that originate completely outside Craigslist, but this has nothing to do with using a verified email address to permit content creation on Craigslist.)
  5. I use Anonymous Publishing's CL mode on several high traffic web-sites and have never experienced this type of spoofing.
  6. These days, the majority own multiple IP-enabled devices (PCs, pads, smartphones) and interact with the Internet from various locations (home, work, WiFi), which means that their Internet address will change from one visit to the next. These users would need to re-verify their email address every time they switched device or location. IMHO, this would be a major inconvenience for these users.
  7. If you feel the CL mode does not provide adequate safeguards against email-address spoofing, but still want to provide an option for users to create content as "Anonymous", you should instead use the PET mode. This mode requires the user to register and provide a valid password, which should rule out spoofing. This is both safer and less inconvenient than having to re-verify your email address by opening up your email-box and click on a verification link every time you wanted to create content after changing IP-address.

To sum up: In practice, this is not a problem, so there is nothing to "fix". On the other hand, trying to "fix" this by adding a check for repeated IP-address would create a major inconvenience for users that own multiple devices, and for users that use the Internet from multiple locations.

Unless you or someone else can come up with a convincing argument why this needs "fixing", this will not be implemented.

However, to let you and others respond, I'll keep this issue active for two weeks before making a final decision on this.

Adam_M’s picture

@gisle,

Thanks for the detailed and thought-out reply.

I agree with what you're saying. The main point being that the most a person can do is to achieve a posting as "Anonymous".

I'm thinking of using Anonymous Publishing for a different use case, which sent me off on a tangent.

gisle’s picture

Status: Active » Closed (works as designed)

Closing, based on #2.

gisle’s picture

Version: 7.x-1.0-rc2 » 7.x-1.x-dev
Component: Miscellaneous » User interface
Assigned: Unassigned » gisle
Category: Support request » Feature request
Status: Closed (works as designed) » Active

Reopening, as the "persistent byline" recently added adds use cases where this may be a problem.

The following setting should be added to the CL submodule:

  • Add flag to request re-verification for a new post if the IP-address does not match the address used before.

  • gisle committed 6b5d1d5 on 7.x-1.x
    Issue #2429403 by gisle: Added option to require re-verification if IP-...
gisle’s picture

Status: Active » Needs review

The setting for verification persistency determines whether users need to re-verify after they've verified (or have been verified) once. This administrator some control over verification persistence.

The possible settings are:

  1. Make verification persistent.
    If this option is set, a verified email address will be trusted, relieving the user from the task of re-verifiying on return visists to the site.
  2. Verification persists as long as the same IP is used (this is the setting requested by the OP).
    If this option is set, a verified email address will be trusted if the IP-address used to post matches the previous IP-address used used along with the same email address.
  3. Require verification for each posting.
    If you set this option, users will have to re-verify their e-mail address again every time they post. This is the most secure setting, but also bit more of a burden on the user.

I believe this setting resolves this feature request. Please review.

If you think it is done, move to RTBC. If you still it needs more work, please point out what is missing or wrong.

gisle’s picture

Status: Needs review » Fixed

This is in release 7.x-1.1.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.