I saw some of last year’s hand-wringing about King County’s advertising policy on Metro buses, most notably in The Stranger. And I agree with the article: the county’s advertising policy, banning
“… advertising advocating or expressing an opinion, position or viewpoint on matters of public debate about economic, political, religious, or social issues …”
is “idiotic.”
Note that the ACLU of Washington filed suit early last year (January 19, 2011) on behalf of the Seattle Mideast Awareness Campaign (SeaMAC), whose ad the county had rejected. On October 7, 2011, SeaMAC lost in federal district court, so on November 3, 2011, ACLU-WA appealed to the Ninth Circuit. The case (No. 11-35931) is still being briefed and has not been argued yet.
During the course of this litigation, King County has updated its advertising policy twice: first, on April 8, 2011, and again January 12, 2012. Annoyingly, the county deletes its old policies, instead of archiving them, making it difficult to quickly see what changed. Fortunately, we have websites like the The Internet Archive and its “Wayback Machine“, which made it easy to obtain a copy of the previous policy.
In comparing the policies, I observed that, in April 2011, the county chose to remain defiant in the face of litigation, since that’s the policy prohibiting ads on “matters of public debate about economic, political, religious, or social issues.”
However, in the January 2012 policy, they dropped the “Public Issue” prohibition (paragraph 6.2.2) and changed the “Disparaging” prohibition into a broader “Demeaning or Disparaging” prohibition (paragraph 6.2.8), which is defined as:
“Advertising that contains material that demeans or disparages an individual, group of individuals or entity. For purposes of determining whether an advertisement contains such material, the County will determine whether a reasonably prudent person, knowledgeable of the County’s ridership and using prevailing community standards, would believe that the advertisement contains material that ridicules or mocks, is abusive or hostile to, or debases the dignity or stature of any individual, group of individuals or entity.”
The previous version of that prohibition (“Disparaging”, paragraph 6.2.10) had read:
“Any advertising that is intended to be (or reasonably could be interpreted as being) disparaging, disreputable, or disrespectful to persons, groups, businesses or organizations, including advertising that portrays individuals as inferior, evil or contemptible because of their race, color, creed, sex, pregnancy, age, religion, ancestry, national origin, marital status, disability, sexual orientation or any other characteristic protected under federal, state or local law.”
So the new policy is considerably more vague about what would be prohibited. There are no longer any references to “religious or social issues” or race, color, creed, sex, pregnancy, age, religion, ancestry, national origin, marital status, disability, sexual orientation, etc.
Which means the new policy doesn’t give us much comfort. We’re still subject to whatever the county arbitrarily decides “ridicules or mocks, is abusive or hostile to, or debases” some person or group.
So where does that leave us? I guess the “I’m a Mormon” ads are officially OK now, since religious messages are no longer explicitly prohibited.
But what about a hypothetical ad from, say, Planned Parenthood that promotes contraception? Would certain religious groups who think that contraception is “evil” feel that that ad was “hostile” to them and their beliefs? Would the county ban it?
Let’s be clear: the county does NOT have to get into the advertisement business. But once it opens the door to ads on public buses, it is going to run afoul of the First Amendment whenever it attempts to ban speech that would otherwise be allowed in any other public setting. There’s nothing special about the side of a bus, despite what the county says. And even if there was, any restrictions on free speech would be subject to “strict scrutiny” and require an extremely compelling government interest. At best, the county’s policy is nothing more than a “rational basis” test, and while I’m not a lawyer, I’m pretty sure that isn’t good enough in the context of constitutional rights.
The county also attempts to frame its policy as one with “viewpoint neutral restrictions.” That’s like a library with a book-banning policy that says they will ban ALL books by a particular author whenever they are forced to ban a SINGLE book by that author, and then claiming that that’s a perfectly good policy because it’s “viewpoint neutral.”
Restrictions that are subject to strict scrutiny also have to be “narrowly tailored,” and a ban like that is obviously not.
Marco 3:52 am on September 12, 2011 Permalink |
Hi, great post, how did you fixed it?
I was hacked in a similar way, but when i replace original wordpress file instead of hacked default-filters.php after 2/3 days hacker change it again…
Jeff 11:33 am on September 14, 2011 Permalink |
I setup a fresh copy of WordPress under a new account on my server, created a new database with a new password, and used WordPress’s WXR export/import feature to get the data from the old site and into the new one without all the crap that the hackers had injected into MySQL. One hassle is that the WXR process is a little buggy–it didn’t properly reattach all media items to the posts/pages to which they were originally attached (I had to manually reattach them), and it didn’t preserve all the taxonomy post counts–probably due to some bug in the handling of Custom Post Types.
Jeff 11:52 am on September 14, 2011 Permalink |
I should add that the MOST important change was changing my WordPress admin password, because my custom logs made it clear that my password had been captured, and that all further hacking/rehacking was occurring through the use of that password.
I still have no idea HOW it was captured, but the most likely explanations are 1) a security flaw in one of the plugins I use that allowed code to be injected that would in turn capture login information, or 2) the password was intercepted while using an open (ie, unpassword-protected) WiFi hotspot.
Pasqual 8:37 am on September 13, 2011 Permalink |
How you have do custom logging?
Jeff 11:42 am on September 14, 2011 Permalink |
I put the following code in wp-load.php:
$hLog = @fopen(ABSPATH."wordpress.log", "ab");if ($hLog) {
if (flock($hLog, LOCK_EX | LOCK_NB)) {
$sLog = date("Y-m-d--H:i:s") . "--" . $_SERVER['REMOTE_ADDR'] . "--http://" . $_SER
VER['SERVER_NAME'] .
$_SERVER['REQUEST_URI'] . "\n";
if (is_array($_GET) && count($_GET) > 0)
$sLog .= "GET: " . trim(print_r($_GET, TRUE)) . "\n";
if (is_array($_POST) && count($_POST) > 0)
$sLog .= "POST: " . trim(print_r($_POST, TRUE)) . "\n";
fwrite($hLog, $sLog);
fclose($hLog);
}
}