Säkerhetsbrist i Quicktime för Windows funnen

Häromdan publicerade GnuCitizen exempel på hur ett säkerhetshål i Quicktime kan utnyttjas till att att komma åt underliggande funktioner i webbläsaren Firefox. Och inte nog med det. Det visar sig även att det går att få tillgång till användarens operativsystem och program.

På bloggen visas ett "snällt" exempel på hur man kan starta miniräknaren i Windows genom att lägga in extrakod i Quicktime-koden. Man visar även hur man kan stänga av användarens dator. Vad för riktiga elakheter man kan hitta på med detta vill jag inte ens tänka på.

Så nu gäller det att se upp om man använder Windows och Quicktime. Rapporter visar på att även Opera och Internet Explorer kan vara sårbara för av denna säkerhetsbrist.

Ett sätt att skydda sig med Firefox verkar vara att installera tillägget NoScript. Det finns också tips om att använda ett alternativ till Quicktime som t ex Quicktime Lite.

Apple har vetat om detta säkerhetsproblem ett bra tag men inte gjort något åt det. Hoppas de börjar lyssna nu när man förstår vilken skada som det kan ställa till med hos webbsurfare.

Svenska MacWorld skriver också om säkerhetsbristen.

By Jesper Lind

Kopiera rader mellan GridViews - En enkel operation?

Man kan tro att det är världens enklaste sak att kopiera en rad från en GridView till en annan. Men den metoden många försöker med först resulterar ofta i "This row already belongs to another table". Här visar vi en enkel metod för att lösa problemet.

DataTable newtable = new DataTable();
DataTable temptable = new DataTable();
CheckBox cb;
BLL bll = new BLL();//Our Business Layer
foreach(GridViewRow row in GridView2.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
cb = row.FindControl("CheckBox1") as CheckBox;
if (cb.Checked == true)
{
temptable.Clear();
temptable = bll.GetItem(Convert.ToInt32(row.Cells[0].Text));
newtable.ImportRow(temptable[0]);
}
}
}
GridView3.DataSource = newtable;
GridView3.DataBind();

Trixet är alltså att skapa en tabell med den raden man vill kopiera och sedan importera den till en ny tabell. Det gå inte att bara flytta över DataRowObjektet utan att få ett fel.

Denna koden kopierar alla rader som är "checked" från gridview2 till gridview3

cell[0] innehåller Id i gridview 2. (row.datakey skulle säkert funka lika bra)

By Glenn Lundberg

Klipp och klistra på webben

http://www.codeodyssey.se/upload/resource/blog/live-clipboard.gif

Ray Ozzie som är Chief Software Architect på Microsoft introducerade en ny idé i mars i år, att standarisera hur en webbapplikation ska kunna hantera klipp och klistra. Han kallar detta Live Clipboard.

Han skrev även lite senare om hur andra har hjälpt till att föra projektet framåt och det har bland annat skapats en sajt där det går att ladda ner sax-ikonen i många filformat.

Själv är jag inte säker på hur användbart detta är, men det är en intressant idé. Nån gång kommer man nog kunna behöva klippa/klistra-funktion och då kan detta vara intressant att kolla vidare på.

Testa gärna ett exempel på Live Clipboard

By Jesper Lind

Lansering av Silverlight 1.0

http://www.codeodyssey.se/upload/resource/blog/silverlight_anims.jpg

Silverlight har nu släppts i version 1.0, läs mer hos bland Microsoft representanterna Robert Folkesson och Scott Guthrie. För er som inte är insatta i tekniken så handlar det om ett plugin till webbläsare för att presentera multimedia och erbjuda interaktivitet (ungefär som Adobe's Flash-spelaren).

Man tillkännager samtidigt att man kommer samarbeta med Novell och hjälpa dem med att utveckla en Linux-baserad implementation av tekniken. På Linux kommer denna få namnet Moonlight läs mer hos Mono-utvecklaren Miguel de Icaza.

Version 1.0 av Silverlight programmeras om jag har förstått det hela rätt genom Javascript-kod och man behöver bara en texteditor för att skapa denna. Det går att ladda ner en utökning till Visual Studio för att få Intellisense på Javascript för Silverlight.

Nästa version 1.1 kommer stödja ASP.NET och finns än så länge bara i Alpha-släpp för utvecklare att testa med. På Silverlight-sajten finns alla verktyg som man behöver för att komma igång med att utveckla applikationer.

Vi ser fram emot att prova på Silverlight-utveckling och tror väldigt starkt på tekniken. IDG har också skrivit en notis om det.

By Jesper Lind

Google Reader uppdateras med sökruta

http://www.codeodyssey.se/upload/resource/blog/search-reader(1).gif

Startade upp Readern när jag skulle prenumenera på ett nytt RSS-flöde och märkte med en gång att något hade förnyats. Ajax-indikationen som visar att något laddas var annolunda med gul bakgrund.

Sen såg jag den viktigast nyheten i denna uppdatering, ett sökfält längst uppe till höger!

Det var verkligen på tiden och nu kan jag ta bort den temporära söklösningen som jag hackade dit med ett Greasemonkey-skript.

Läs mer om uppdateringen på den officiella Google Reader bloggen

By Jesper Lind

Actionscript-kodare sökes till spännande community-projekt

Vi är väldigt nyfikna på vad det är för spännande projekt vår vän Fakepilot håller på att utveckla. Nu söker han förstärkning till sitt team och letar efter en duktig kodare som har goda kunskaper i PHP, Actionscript 3.0, Flash och community-byggande.

Bäst är det om du bor i närheten av Stockholm och men går även bra att arbeta på distans från andra orter. Huvudsaken är att du tror att du är rätt person för projektet.

Enligt erfarenhet så är det väldigt kul att jobba tillsammans med Mattias, och få ta del av den professionalism och noggrannhet i detaljer, som utmärker allt han tar sig för. Så om detta låter intressant, läs mer om jobberbjudandet på hans blogg.

By Jesper Lind

Snabb Firefox på localhost och eliminera minnesläckande tillägg

Firefox kan gå riktigt långsamt när man kör den inbyggda web servern i Visual Studio. Tydligen kan detta bero på DNS-problem relaterat till IPv6. Om man sätter network.dns.disableIPv6 till false i about:config så ska det gå bättre.

Andra källor till seghet kan vara att tillägg man har installerat inte fungerar optimalt. Som tur är har Leak Monitor utvecklats för att kunna spåra såna minnesläckor i tillägg. Just fick jag passande upp den första rapporten från tillägget, när jag skriver detta. Det presenteras i en Javascript-popup där man kan spåra problemet och se vilket tillägg som läckt minne.

Cybernet News har gjort en undersökning med hjälp av Leak Monitor och presenterar en sammanställning på några tillägg man ska se upp för.

By Jesper Lind

Inkludera CSS-filer med Code Behind

Att inkludera CSS-filer dynamiskt är något jag märker att vi gör allt oftare i projekten. Så dags att spara på bloggen hur man gör så vi slipper hitta exempel varje gång.

HtmlGenericControl includeCss = new HtmlGenericControl("link");
includeCss.Attributes.Add("type", "text/css");
includeCss.Attributes.Add("rel", "stylesheet");

includeCss.Attributes.Add("href", css.ToString());
this.Page.Header.Controls.Add(includeCss);

Se även hur man gör för att inkludera Javascript-filer och kodblock från .NET-kod.

By Jesper Lind

Mailsnurr med Loopia och egna servrar

Tänkte skriva en rad om en begränsning med Loopia's webbhotell-paket som jag fick erfara för ett tag sen. Det står ingenting i deras kunskapsdatabas om detta, så jag vill hjälpa andra som försöker göra samma sak i framtiden, genom att ge lite råd.

Det jag försökte var att genom deras LoopiaDNS peka ett domännamn till våra egna namnservrar. Detta fungerade mycket bra och hemsidan kördes fint.

Men vi ville även kunna använda Loopia's e-postsystem för samma domän och det var här problemen började.

Jag la till följande två MX-pekare i DNS-inställningarna på våra servrar:

Mailforward1.loopia.se
Mailforward2.loopia.se

När jag sedan försökte skicka mail till det konton fick jag tillbaks följande felmeddelande (mailadresserna är påhittade):

Hi. This is the qmail-send program at s20.loopia.se.

I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.

<reciever@website.domain>:
194.9.94.245 failed after I sent the message.
Remote host said: 554 too many hops, this message is looping (#5.4.6)

--- Below this line is a copy of the message.

Return-Path: <sender@website.domain>
Received: (qmail 99621 invoked from network); 17 Aug 2007 01:43:41 -0000
Received: from s4.loopia.se ([194.9.94.245])
(envelope-sender <sender@website.domain>)
by s20.loopia.se (qmail-ldap-1.03) with SMTP
for <reciever@website.domain>; 17 Aug 2007 01:43:41 -0000
Received: (qmail 52798 invoked from network); 17 Aug 2007 01:43:41 -0000
Received: from s20.loopia.se (194.9.94.3)
by s4.loopia.se with SMTP; 17 Aug 2007 01:43:41 -0000
Received: (qmail 99305 invoked from network); 17 Aug 2007 01:43:39 -0000
Received: from s4.loopia.se ([194.9.94.245])
(envelope-sender <sender@website.domain>)
by s20.loopia.se (qmail-ldap-1.03) with SMTP
for <reciever@website.domain>; 17 Aug 2007 01:43:39 -0000
Received: (qmail 52791 invoked from network); 17 Aug 2007 01:43:39 -0000
Received: from s20.loopia.se (194.9.94.3)
by s4.loopia.se with SMTP; 17 Aug 2007 01:43:39 -0000
Received: (qmail 98985 invoked from network); 17 Aug 2007 01:43:36 -0000
Received: from s4.loopia.se ([194.9.94.245])
(envelope-sender <sender@website.domain>)
by s20.loopia.se (qmail-ldap-1.03) with SMTP
for <reciever@website.domain>; 17 Aug 2007 01:43:36 -0000
....

Detta är bara början på meddelandet det fortsätter i ca 100 hopp, i en slags evighetsloop.

Vid kontakt med supporten fick jag detta svar.

Domänen måste peka mot våra namnservrar för att du ska få vidarebefordringen att fungera genom att det är en konfiguration på vår namnserver som gör att det är vi som måste "hosta" domännamnet.

Så därför vill jag klargöra för andra som tänker försöka sig på samma sak. Det går INTE att använda Loopias e-post om du väljer att använda egna namnservrar.

By Jesper Lind