Page MenuHomePhabricator

Secure/Admin have many accounts with commercial links in profile blurbs
Open, LowPublic

Description

On both admin and secure, users with a long profile blurb:

mysql> select * from user_profile where length(blurb) > 128 limit 100;

...are overwhelmingly spam accounts. These links are currently not nofollow, so there's some technical incentive for abusive users to continue doing this.

A secondary behavior of these accounts is to leave various comments.

Disabling users currently does not disable their profile blurb.

We should possibly introduce a new "Banished to the Shadow Realm" state which hides the profile blurb and all comments from a user. These users could also become invisible while not logged in (T12877) in all cases, regardless of other settings.

Event Timeline

epriestley triaged this task as Low priority.Nov 6 2018, 12:16 PM
epriestley created this task.

A couple of narrow ideas here:

  • We can add a "can comment" permission to blogs (or just a "no comments" mode), which is probably a good idea anyway. This mostly targets blog comments on admin.phacility.com but isn't a bad feature in general.
  • We could add a "can edit profile blurbs" permission, although we probably wouldn't add this if we had content review.
revi added a subscriber: revi.Nov 26 2018, 4:27 PM

I'm planning to banish these users from secure. This is mostly: polish (?) SEO bots; printer fax spam; and "security researchers":

0x20
AbhishekGhosh
AnmolPuri
AnthonyDyer887
BenHayak
DonnaThomas
ElianaDzon
ElianaDzon1
ElizaDzon
EmilyLittle
EoinMorgan
Hamza21691
JohnDavid
Krista
Ramm
abramskalty
abraxyss
achenonprod1979
acwarjackpor1989
admin
agsleepenful1970
ahanoslio1985
alfizheilo1980
allouttrees
altombrawn
anacrasro1982
anandvit
ananizby1988
andrew14nov
andrustross
andyjonesseo
anerakvol1971
appcuarium
aqdessine1984
arinenti1975
asdasdad
atadproxden1988
athealamder1976
atomtheman
aw2161990
bachenmyli1972
backtadefer1979
batsemprolsio1976
baygreasincon1989
bellgritabun1986
belwimifu1987
bhajcondeser1976
bihoseso1971
blassaibirthdes1979
blazemarsor1982
blitobmitno1974
bloustioubrumper1984
bostlebelnai1984
branarisin1981
brandonatkinson
breaky
broverivir1973
bruslyalesme1989
butttoolrerep1981
buttzasile1978
buytinema1970
capudico1985
casuconpo1985
cellbulweschcard1971
cesbetersben1988
chasucone1976
chinmohan
ciakavopen1979
clenenlemol1980
cludesunem1988
cocksereti1987
compergsixfdisk1980
compwebtago1971
comtiasildi1980
conmecipsea1973
constapobar1981
contacticonnect
createninat1970
creepelmodis1985
crowampracyth1974
cuscahouscie1984
cutabnide1985
czeko
czekoczeko1
da150498
dabrickpawsma1973
darkshell22
daustalroami1981
davidwault
daysmisocin1986
deepuu
derscomdaca1978
dessokesing1976
destgoldterde1980
dexptrapdena1980
dfx
diadadechas1986
diagreenamcan1972
dianamikaelson
diapacisour1989
dicomptican1978
downnoziti1987
dreheckabders1983
dubgeantsingso1971
ducnamonmezn1989
dultighlika1975
dweeloldugun1977
edtructiawed1983
elastconba1972
elenatanos
emailiconnect
erdisabna1971
esatusra1981
esittoke1986
evandrix
evandrixix
excatidif1972
exploit
extrapjuri1984
factiogilsa1984
fchenjobczata1972
fitamatumb1973
fiterecount1980
flamaninsea1973
flaxorpiban1975
florexbrodja1989
flunfaesteelen1986
fordrimmyruf1980
fragifizat1971
fragotende1974
franidintu1971
frankscott
fridris
fronistimno1983
funksaddwohba1971
gasentyden1987
georgewallis56
grabsapurchcamb1980
growadatov1981
guitoliche1987
gulgosizets1970
habofincio1981
haimerdentdic1976
haizinticorn1989
hamihax
hamiltonsci
hamonjuger1988
handnidfamus1976
hardikt
harishkumar0394
harmewemys1970
hesmejingga1987
hildthomnywo1981
hincamingpod1975
hjghjvj
ibatimmar1974
ignadethe1987
imtupamo1987
incimebon1974
inmatire1970
inostiokoe1987
inrosphofi1972
introvertmac
ipindeme1972
irovonam1986
irrolese1971
ishitapatel666
itephesop1976
jablor
janetbrown
jensacanbi1982
jessicastorey
jeucrypisin1989
jhonmately
jigneshshah
jinghantest
jtest1
juesesloosa1985
katewillson
kaypresadcu1986
keiprinackram1986
kiisuggsubrie1982
kingkoliri1982
kinspelmaters1971
knowocoutpar1983
knushoebutem1980
kodralige1982
krasunechten1977
laigaalade1970
lanmovesttab1988
legtisubor1979
lelibinto1987
lenspaturnbe1989
lewisnelson
leytotidar1988
lighpricsedis1971
litacompse1975
localroofcare
lodubomna1973
lokeshkumarv
lotkidastsimp1979
louichromomel1981
lukkonior
luowerheunoi1972
mariyajane15
marksegutdiff1985
mathdevine
matirejo1981
matthardphillea1982
mendemulca1977
mensoringramb1978
meynitmahy1976
miapiocrosel1984
michaelwilliams6511
miilaygecent1989
millpastaru1982
mindjapari1987
moncmistsulzwhi1975
moypitmittterm1985
nairiegufo1970
narenhosour1986
newsnogboze1975
neyrenphowing1970
nimbbargoldsis1975
ningsadyra1981
niobronnispanc1980
ntedinstugad1975
nyaplatpanbirk1982
ogutartis1971
ohwachima1979
ollarore1981
ontaringtun1982
opcemipet1987
orfipinjohn1984
ottirilra1980
pankaj.rane2k8
papesuhumb1979
paytoverpho1970
pemanthimbther1982
perfectsingh
perfectsingh9
perlihuri1971
peteranderson708
petersmith
plattektpaddta1976
pleasticlida1974
poimasroomo1970
postvanlingre1989
presbecobed1983
procacunsam1985
prodhighhungsound1973
protcompwima1974
provenetin1977
punclinphoweb1982
purcuoweldi1984
pyrk1
quewelfitork1976
raaymondhiltonn
rafeilsnow
rahul.crack123
ramepofe1989
randy14nov
raotiramog1982
ravip2248
raymondhiltonn
raymondhiltoonn
rayymondhiltonn
rbronwen16
rechardhewid
recomsfuddlo1977
reddecalre1987
repgaporvie1981
riaglobedip1973
ricktalpazcro1971
rileyscott
rinfspecuatun1985
ringlalinkte1984
riopartwascden1984
rioreraman1980
robinsons933
rock4hack
rogerferdrer
roseolivia
rulbosocent1970
rungopasur1989
s4ndeep
saamualalora
saamualdillon
saamualsandigo
saggbabbganvo1981
saisiopaytor1978
saivekupass1974
samheazlett
sammualdillon
sammualsandigo
samualaloora
samualalora
samualcopper
samualdillon
samualdillonn
samualgeona
samualjohhn
samualsandigo
samualsandigoo
samualtuffel
samualxxthomsonnxx
santgenrore1972
sastesudli1971
saw
schotarjaifoot1980
scigmeocheewa1973
sdestisthonna1988
senmareva1973
sersicommcowb1985
seycalcumbwat1989
sgbugs1337
shivathegame
sibbipema1974
sierinkdamno1979
skinlavsguana1987
smithroy121
snakesarov1977
soleridisc1984
somanyceramics
soretleatic1981
sorptingcicon1977
spasundesbins1981
speconteare1970
specuztrafcen1986
sporimusen1974
statsubelis1974
steavjohns
steevejason
stepensixca1976
stevesmithH
strukt93
subtadecol1981
surjivan
tairinsigi1989
taisourribe1986
tamomamar1970
tangdolarsgril1972
teardzajali1975
terstorokfolk1976
terwatasi1981
terwidiskci1975
testdrivcuadre1973
testersplit
testmanager92
thedpoboschi1981
theidoppgesdo1974
thetthorani1982
tighpusoxy1974
tingthewise1977
tiojakusac1971
tiomanfzyslo1974
tiomidsadi1985
tioticento1981
tiozaczmouga1978
titgpotonce1970
tobilectau1985
tonsclarsilon1989
traparasac1981
trepsibfitwtes1971
ubesapam1976
unebsiggobb1974
unecdesur1970
upenepap1976
vadibourfdi1982
venkettcountduct1988
vijithvellora
wacothomar1977
waubackthofor1984
webcompconsenb1983
welhardchelo1978
wigtalinkhalf1975
windcrisicun1980
ybvelsynthsun1978
zakasversmar1981
zufretisand1981

I'm definitely not going to banish @Felishiamarie tho ;)

On admin, basically every user with a blurb is abusive. I've just disabled the field as a coarse reaction.

I just deleted the users above and am backing away from D19933, at least for now, since it doesn't feel like an especially great fit for either secure or admin.

banisher.php
<?php

require_once 'scripts/init/init-script.php';

$table = new PhabricatorUser();
$cache_path = 'progress.json';

if (Filesystem::pathExists($cache_path)) {
  $cache = Filesystem::readFile($cache_path);
  $cache = phutil_json_decode($cache);
} else {
  $cache = array();
}

foreach (new LiskMigrationIterator($table) as $user) {
  $username = $user->getUsername();

  if ($user->getIsDisabled()) {
    echo "Skpping disabled user: {$username}\n";
    continue;
  }

  if (isset($cache[$username])) {
    echo "Skipping judged user: {$username}\n";
    continue;
  }

  $profile = $user->loadUserProfile();
  $blurb = $profile->getBlurb();

  if (!strlen($blurb)) {
    echo "Skipping user with no blurb: {$username}\n";
    continue;
  }

  echo tsprintf(
    "**%s**\n\n\n%B\n\n\n",
    $username,
    $blurb);

  $ok = phutil_console_confirm('Banish this user?');

  $cache[$username] = $ok;
  Filesystem::writeFile($cache_path, phutil_json_encode($cache));
}

echo "Done.\n";