<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<docs>http://blogs.law.harvard.edu/tech/</docs>
		<description>RSS-Feed from https://potassium.1338.at/</description>
		<link>https://potassium.1338.at/</link>
		<title>Potassiums Weblog - One step ahead of the average nerd - Kategorie: SQL</title>
		<ttl>30</ttl>
		
<item>
	<title><![CDATA[Danke Michi]]></title>
	<description><![CDATA[Danke für deine Unterstützung mit SQL letztens, warst echt ne große Hilfe :)<br />
Michi hat mir die Bedeutung von JOINS, CONCAT, und COALESCE gezeigt.<br />
Wurde natürlich postwendend auch hier in PotaBlog teilweise integriert :D<br />
<br />
Übrigens: <a href="http://phpperformance.de/ip-adressen-optimal-speichern/" target='_blank'>IP2LONG ist auch sehr interssant</a>]]></description>
	<guid>https://potassium.1338.at/index.php?id=865#</guid>
	<link>https://potassium.1338.at/index.php?id=865</link>
	<pubDate>Sat, 12 Sep 2009 23:05:00 +0200</pubDate>
	<author>potassium</author>
	<category><![CDATA[Software-Entwicklung, SQL]]></category>
</item>
<item>
	<title><![CDATA[SQL: Doppelte Datensätze einfach löschen [update]]]></title>
	<description><![CDATA[Nachdem Michelle mich darauf aufmerksam gemacht hat, dass im Seitenmenü die doppelte Anzahl an Seiten zB bei den Kategorien angezeigt werden als eigentlich vorhanden sein sollten hab ich mich auf Fehlersuche gemacht.<br />
Nachdem ich ein fehlendes <em>DISTINCT</em> zuerst für den Verantwortlichen gehalten habe bin ich nach einiger Zeit draufgekommen, dass beim Portieren der Software der Inhalt 2 mal eingefügt wurde.<br />
Ich hatte also eine 2spaltige Tabelle mit mehreren Tausend Einträgen und diese waren je 2 mal vorhanden. Was also tun? Manuell kann man das vergessen. Mit normalen Abfragen is mir auch nix eingefallen und siehe da das Glasgoogle hat geholfen und folgendes zu Tage gebracht:<br />
<a href="http://www.issociate.de/board/post/255929/Doppelte_Einträge_löschen.html" target='_blank'>Doppelte Einträge löschen</a> (ganz unten)<br />
<br />
<fieldset><legend>Code</legend>ALTER <font color="red">IGNORE</font> TABLE <em>Table</em> ADD UNIQUE INDEX temp_index (<em>Column1</em> , <em>Column2</em>);</fieldset><br />
Es wird ein UNIQUE Index auf die gewähljten Felder gelegt und da er UNIQUE ist, sind keine doppelten Einträge erlaubt.<br />
Ignore ist dabei das Stichwort: Dadurch werden doppelte Einträge einfach gelöscht. Sache gelöst. Juhu :D<br />
<br />
]]></description>
	<guid>https://potassium.1338.at/index.php?id=861#</guid>
	<link>https://potassium.1338.at/index.php?id=861</link>
	<pubDate>Thu, 27 Aug 2009 22:17:00 +0200</pubDate>
	<author>potassium</author>
	<category><![CDATA[Software-Entwicklung, Programmieren, SQL]]></category>
</item>
<item>
	<title><![CDATA[Zum aus der Haut fahrn [update]]]></title>
	<description><![CDATA[Wollte für die Entwicklung von PotaBlog eine Bugverwaltungssoftware installieren, zwecks der Übersichtlichkeit.<br />
Hab mich nach sehr kurzer Recherche dazu entschlossen OOPS Easytrack zu benutzen. <br />
Beim installieren hat der MySQL-Server mucken gemacht worauf ich den mal schnell upgraden wollte.<br />
DENKSTE<br />
GOTT SEI DANK hab ich ein Backup gemacht, sonst wärs sowieso aus gewesen.<br />
Erst einmal die neueste Version von MySQL geladen im guten Glauben, dass man einfach upgraden kann. DENKSTE<br />
Also bissl recherchiert und dann erstmal Version 4.1 installiert und <em>mysql_upgrade</em> ausgeführt. Alles ok.<br />
Gut dann 5.1.28 installiert -> FAIL Sämtliche Tables mit Keys waren korrupt.<br />
Nach langem hin und her (mind. 5 mal alles deinstallieren und neu installieren) bin ich durch m3 auf einen Bugreport gestoßen der es dann erklärt hat.<br />
Man muss zuerst auf 5.0.xx (neueste Version < 5.1) updaten, DANN ein <em>mysql_upgrade</em> durchführen und erst DANNACH auf 5.1.xx upgraden.<br />
SO EIN SCHEISSDRECK!<br />
<br />
Najo, dann is endlich MySQL gelaufen und die OOPS Easytracksoftware hat sofort mal wieder die Platte verlassen. Abgesehn davon, dass ich JAVA-GUIs nicht ausstehn kann, zwingt mich das Programm zu jedem <em>Misthaufen</em> eine <em>Description</em> abzugeben. :mad:<br />
]]></description>
	<guid>https://potassium.1338.at/index.php?id=676#</guid>
	<link>https://potassium.1338.at/index.php?id=676</link>
	<pubDate>Fri, 10 Oct 2008 22:36:00 +0200</pubDate>
	<author>potassium</author>
	<category><![CDATA[Softwarereview, was mich ärgert..., SQL]]></category>
</item>
<item>
	<title><![CDATA[SQL Column Truncation Vulnerabilities [update]]]></title>
	<description><![CDATA[SQL-Injection, XSS (Cross-Site-Scripting) oder Session Hijacking sind den meisten Leuten die sich mit der Entwicklung und Sicherheit von (Web)-Applikationen beschäftigen sicherlich ein Begriff.<br />
Doch auch anders können sich bösartige Lücken in Quelltexten auftun.<br />
<br />
Stefan Esser schreibt auf seinem Blog <a href="http://www.suspekt.org/2008/08/18/mysql-and-sql-column-truncation-vulnerabilities/" target='_blank'>Suspekt...A Blog About Code, Information Security, PHP And More</a> über eine Schwachstelle die sich da <em>SQL Column Truncation Vulnerabilities</em> nennt.<br />
<br />
Dabei wird ausgenutzt, dass ein String der mehr Zeichen hat als für ein bestimmtes Feld erlaubt sind, einfach beim Zeichenlimit abgeschnitten werden. Somit wird es möglich, dass zb ein Benutzer <em>"admin"</em> und ein Benutzer <em>"admin        "</em> in der gleichen Spalte existieren, obwohl beim erstellen des 2. Benutzers eine Abfrage getätigt wurde, ob der Benutzer schon vorhanden sei.<br />
<fieldset class="quotediv"><legend>Zitat</legend>...<br />
Because MySQL does not compare strings in binary mode by default more relaxed comparison rules are used. One of these relaxations is that trailing space characters are ignored during the comparison. This means the string 'admin    ' is still equal to the string 'admin' in the database. And therefore the application will refuse to accept the new user.<br />
<br />
If the attacker however tries the username 'admin           x' the application will search for it in the database and will not find it, because it is impossible to find a username with a length of 17 in a database field that has a 16 character limit. The application will accept the new username and insert it into the database. However the username column is to short for the full name and therefore it is truncated and 'admin           ' is inserted into the database.<br />
<br />
The result of this is that the user table now contains two users that due to trailing spaces both will be returned when the SELECT query above is executed. At this point a potential security problem arises because now it depends on how the username is treated throughout the application. The following pseudocode for example is vulnerable.<br />
...</fieldset><br />
<br />
Mehr davon auf <a href="http://www.suspekt.org/2008/08/18/mysql-and-sql-column-truncation-vulnerabilities/" target='_blank'>www.suspekt.org</a><br />
<br />
Sehr empfehlenswert!]]></description>
	<guid>https://potassium.1338.at/index.php?id=639#</guid>
	<link>https://potassium.1338.at/index.php?id=639</link>
	<pubDate>Tue, 09 Sep 2008 23:11:00 +0200</pubDate>
	<author>potassium</author>
	<category><![CDATA[lost and found @ WWW, Software-Entwicklung, Datenspeichermafia, "Raubkopien" und anderes Übel..., Softwarereview, Zum Nachdenken, SQL]]></category>
</item>
<item>
	<title><![CDATA[Robert '); DROP TABLE Students;-- [update]]]></title>
	<description><![CDATA[<a href="http://xkcd.com/327/" target='_blank'><img alt='Picture' src='https://potassium.1338.at/upload/pictures/exploits_of_a_mom.jpg' border='0' class='blogged_image' /></a><br />
Autor: <a href="http://www.xkcd.com" target='_blank'>http://www.xkcd.com</a><br />
<br />
<br />
Einfach nur ROFL :D<br />
Wers nicht versteht möge sich <a href="http://de.wikipedia.org/wiki/SQL-Injektion" target='_blank'>bilden</a>!<br />
<br />
Via <a href="http://martin.leyrer.priv.at/" target='_blank'>m3</a>]]></description>
	<guid>https://potassium.1338.at/index.php?id=342#</guid>
	<link>https://potassium.1338.at/index.php?id=342</link>
	<pubDate>Wed, 10 Oct 2007 16:05:00 +0200</pubDate>
	<author>potassium</author>
	<category><![CDATA[lost and found @ WWW, g33k-Humor, SQL]]></category>
</item>
<item>
	<title><![CDATA[Wenn das Wörtchen DROP nicht wäre oder Murphy hat immer recht! [update]]]></title>
	<description><![CDATA[<fieldset class="quotediv"><legend>Zitat</legend>Das Backup-Programm wird die einzige noch verbliebene Sichrungskopie ohne Nachfrage überschreiben.</fieldset><br />
Oder auch: Spiele kein SQL-Dump aus auf die gleiche Datenbank, wenn du die Daten manuell entfernt hat (bis auf einen Datensatz), wenn du vorher "DROP TABLE IF EXIST" nicht entfernt hast.<br />
<br />
Genau das habe ich gerade gemacht und mir somit 200 händisch eingetippte Datensätze vernichtet. Natürlich gibt es Backups, aber alle diese Backups sind uralt....(Murphy grüßt schon wieder...)<br />
<br />
Beim aktuellesten Backup fehlen ca 90 Datensätze...<br />
Das wird ne scheiß Hackn das wieder herzustellen...<br />
<br />
<strong>Merke: Erst Denken, dann Handeln!</strong> Das erspart unglaublich viel Arbeit.<br />
Aber vermutlich liegt das eh nur an den tierischen Temperaturen - 33° C um halb Zehn am Abend is einfach nicht normal für diese Breitengrade.<br />
]]></description>
	<guid>https://potassium.1338.at/index.php?id=276#</guid>
	<link>https://potassium.1338.at/index.php?id=276</link>
	<pubDate>Thu, 19 Jul 2007 21:29:00 +0200</pubDate>
	<author>potassium</author>
	<category><![CDATA[Software-Entwicklung, Allgemein, was mich ärgert..., SQL]]></category>
</item>

	</channel>
</rss>
