Så köper du ett flipperspel

Jag får ofta frågan från icke insatta i flippervärlden om var man kan köpa flipperspel, hur mycket dom kostar, hur många olika finns det och hur man lagar dom.

Firepower II

Var hittar jag då flipperspel?
a) Svenska flippersällskapets forum (Klicka på Torget)
b) Flipperspel på blocket
c) Flipperspel till salu hos flipperoperatörer (Klicka på spel-till-salu) Ring en operatör!
d) Flipperkontakter i Sundsvall med omnejd samt över hela Sverige

Hur mycket kostar ett flipperspel?
Allt mellan 2000 kr till 50 000 kr. Priset är en kombination av hur populärt och roligt ett spel är, dess skick samt hur stort utbud/efterfrågan det finns av en speciell titel. Om du är osäker så ställ en fråga på Svenska flippersällskapets forum för att få en uppskattning av priset. Oftast får du här en rättvis prisbild av de duktiga forummedlemmarna.

Vilka spel finns det?
Internet Pinball Database så finns de allra flest spel listade. Det finns i dagsläget 5000 st unika titlar så det finns ett stort antal spel att välja mellan. Om du vill testa spelet på din PC innan du köper det för att få en uppfattning om regler och dylikt så kan du ladda hem Visual Pinmame som är en flipperemulator. Till Pinmame så kan du sedan ladda hem de flesta nya spelen (80-talet och framåt). Du laddar du hem spelets ROM:ar och lägger i en mapp i Pinmame-installationen.

Hur lagar man flipperspel?
Om man har intresset för att meka med mekaniska, elektroniska eller elektromagentiska prylar så är flipperspel precis på lagom nivå för att man ska kunna laga det mesta på egen hand. För lagningar blir man förr eller senare tvingad att utföra eftersom det är många rörliga delar i ett flipperspel som till slut går sönder. Oftast så kan även nybörjare laga de vanligaste och enkla felen. Är det något svårare fel så kollar jag runt på dessa källor.
a) Läser manualen och kollar upp vad det är för fel.
b) Läser pinball repair guides på nätet för ytterligare info.
c) Frågar om råd på Svenska flippersällskapets forum
d) Googlar eller söker i rec.games.pinball.

Den bästa källan för information om flipperspel i Sverige är Svenska flippersällskapets hemsida. Där finns många artiklar om flipper (bla kom-ihåg-lista-vid-spelköp) samt även ett mycket aktivt forum.

Flytt av mailhanteringen från Qmail till Google Apps

Eftersom jag driftat mina egna webbservrar (FreeBSD) i ett flertal år så har det visat sig vilka moment som är mer krångliga och tidskrävande än andra. I huvudsak så kör jag webb (php, apache och mysql) och mail (Qmail) på mina maskiner för dels mina domäner samt för kompisars domäner. Det mest krångliga & tidskrävande har under denna tid varit att hantera mailen. För det första så är det inte helt lätt att konfigurera Qmail trots att det finns en relativt enkel tutorial på QmailRocks. Om man ska ha alla finesser som imap, pop, spamfilter, virusskydd och vpopmail så får man en diger lista med program som ska konfas och skötas. Detta har inte fungerat helt okey för ganska mycket spam kom fortfarande fram och min internetoperatör är inte helt förjust i att jag ibland skickar ut tusentals mail.

För att slippa mailhanteringen så beslöt jag mig för att testa Google Apps Standard Edition som är en gratis tjänst från Google där du kan koppla ett domännamn till ett flertal av deras tjänster. Den tjänst jag ville använda mig av var Gmail på så sätt att all min mail för alla mina domäner körs via deras mailtjänst.

Jag hade följande krav på tjänsten:
1) Webbmail för enkel hantering
2) Imap och pop för ytterligare valfrihet
3) smtp funktionalitet så att mina webbsidor (främst) kan skicka mail
4) Gmails spamfilter

På Googles sidor så kunde jag läsa mig till att dom hade stöd för punkterna 1, 2 och 4. Den återstående punkten, som jag var tvungen att testa, var smtp-funktionaliteten. Detta var den viktigaste punkten eftersom min största sajt HockeySnack kan behöva skicka iväg flera tusen mail vid vissa tillfällen. Sajten kräver ett väl fungerande mailsystem!

Tydligen så får varje användare max skicka 500 mail per dag då man använder gratisversionen. Skickar man fler mail så blir man avstängd i 24 timmar. Men detta kommer man runt genom att skapa upp fler användare. Så om du har 10 användare så kan du teoretiskt skicka 10 * 500 = 5000 mail/dag. För att klara denna begränsning så var jag tvungen att skapa logik i koden på min webbsajt som sköter mailhanteringen så att inte gränsvärdet överskrids på daglig basis. Den lösning som jag skapade har hittills fungerat förträffligt. Då php-mailprogrammet känner att det närmar sig begränsningen så väntar den med att skicka mail tills dess att det är grönt ljus.

Att flytta mail fysiskt från qmail till google apps utfördes genom att mappa upp båda servrarna via imap i Microsoft Outlook (Thunderbird borde gå lika bra) för att sedan bara flytta över mappar och brev med drag and drop. Hur man flyttar över en hel bunt med konton vet jag inte hur man gör utan då får man nog kontakta Google och köra betalvarianten av Google Apps.

Slutsats
Nu har jag kört mailen via Google Apps i några veckor och jag har verkligen inget att klaga på. Jag har haft noll nertid på tjänsten och inte fått ett enda spammail under hela tiden. Jag har gjort ett större utskick från min webbsajt till 5000 användare utan problem. Mina kompisar har flyttat all sin mail till samma tjänst med samma fina resultat så nu kan jag äntligen stänga ner min privata mailserver. Min rekommendation till folk med egna problematiska webbservrar är att det inte är några problem att köra Google Apps. Den enda invändningen man kan ha är att Google nu vet innehållet i mina mail, men för min del är inte det något problem. Att det hela är gratis gör ju inte heller saken sämre.

OBS För att kunna använda Google Apps så är det lättast om du äger din domän samt att du kan ändra DNS-inställningarna för denna. Du måste kunna ändra din MX-record till att peka mot en av googles servrar.

Monitoring Qmail in Freebsd

I needed a way to monitor qmail on my Freebsd server. In particular I wanted to shut down qmail if ”too many mails” were sent in a specified timeframe. I previously had a problem when one of my websites began to act as a spam proxy due to a ”bug” in php mail function that enables mail injection. I could not google a solution and had to write my own script.

The approach is fairly simple. The qmail-send log folder ( /var/log/qmail/qmail-send/) contains information about all recently sent emails. My script checks one of these log-files too see if it contains the current date. If it does, then Qmail has sent ”too many” emails and qmail should be shut down. Depending on which log file that is checked and how many records you have in each log file you could determine how many emails that are ”too many” for your qmail server. It is simply a matter of tuning the script by changing ”head -n NUMBER”.

Which action to take when qmail runs wild is up to you. On my server I notify myself by sending a sms to my phone and a simple mail. The script is as follows:

#!/usr/local/bin/bash
PATH=$PATH:/usr/local/bin

DATE=”`date +%Y-%m-%d`”
LOGFILE=”`ls -lt /var/log/qmail/qmail-send/@* | awk {’print $9’} | head -n 1`”
MAILDATE=”`cat  $LOGFILE | tai64nlocal | head -c 10`”
QMAILUP=”`svstat /var/qmail/supervise/qmail-send/ | awk {’print $2’}`”

if [ $QMAILUP == ”down” ]
then
  echo No need for checking – Qmail is not running
  exit
fi

echo This date: $DATE
echo Log date: $MAILDATE
if [ $DATE == $MAILDATE ]
then
  echo Equal dates – Mailing qmail-administrator
  /var/qmail/bin/qmail-inject -h < /scripts/smsqmail
  echo ”Qmail is stopped” | mailx -s ”Qmail alert” marcus@blahblah.com
  echo Shutting down qmail in 20 seconds
  sleep 20
  qmailctl stop
else
  echo Different dates – Everything seems to be okey
fi

Förhindra php mail injection

PHP’s mail-funktion (mail) ska man använda med viss försiktighet eftersom spambot’ar relativt enkelt kan utnyttja en inbyggd svaghet/feature/”kalla-det-vad-du-vill”. Det farliga är att många som utvecklar i php inte vet vad som kan hända med svaga osäkrade webbside-formulär som använder denna funktionalitet. Om en spambot hittar och utnyttjar ”svagheten” på dina webbsidor så kan du på ett ögonblick bli en storspammare och får då stå för konsekvenserna då du förr eller senare blir uppsökt av din internetleverantör eller webbhotell.

Vanligtvis har man ”kontakta oss” eller andra sidor där användare får skriva in sitt namn, e-postadress, ämne samt meddelande. Då man sedan skriver koden som ska maila till den som ska ha informationen så kontrollerar man vanligtvis  att e-postadressen är riktig samt att några av fälten inte är tomma. Eventuellt filtrerar man även meddelandet och tar bort html, konstiga tecken eller liknande. Då man processat variablerna så skickar man in dessa i mail-funktionen som skickar ut mail till den/de som ska få det.

Mail-funktionen anropas enligt följande:

bool mail ( string $to, string $subject, string $message [, string $additional_headers [, string $additional_parameters]] )

Exempel på användning:

$to = ”kontakt@person.se”
$subject = $[Ämne från webbformuläret];
$message = $[Meddelande från webbformuläret];
$additional_headers = ”From:”.$[sändaradress från webbformuläret];
mail($to,$subject,$message,$additional_headers);

Eftersom man hårdkodar mottagaradressen så kan man tro att det enbart är den personen som kommer att få mailet. Men så är INTE fallet utan mejlet kan skickas till ett mycket stort antal personer utan din vetskap (om du nu inte läst detta innan) med så kallad mail injection. Detta nämner inte php-manualen utan kodaren måste själv veta hur mail skickas och hur mail är formaterade. Med tanke på att nivån på php-programmerare varierar kraftigt så är det viktigt att man har koll på något sånt här.

Hur fungerar då detta?
Spambot’arna injicerar ytterligare mottagare i parametern för additional_header som kommer från formulärets sändaradress-input ruta. Genom att lägga till fler mottagare genom CC samt BCC i oskyddade formulär så agerar ditt webbformulär som en spam-proxy.

Exempel på mail injection av sändaradress:

sender@anonymous.www%0ACc:recipient@someothersite.xxx %0ABcc:somebloke@grrrr.xxx,someotherbloke@oooops.xxx

Lösning
Använd rigorösa kontroller även på simpla formulär. Kontrollera att det inte går att injicera mail headers. Använd exempelvis en mail-class som har skydd mot denna typ av problem eller något reguljärt uttryck.

Länkar
mailinjection.com – Mailinjection – Mer om problemet
SecurePhp – Email injection – Beskrivning av problemet och lösningar
Hardened PHP – Suhosin patch – Patch som bl.a används av freebsd ports