[TUTORIAL]Phoenix MySQL Lücken FIX[/TUTORIAL]

  • Hey Towners,
    Privileg postete mal dies. Lest dies bitte zuerst durch und befolgt so viele Schritte wie nur möglich.
    Hier im Thread möchte ich euch zeigen, wie man die SQL Lücken fixt.
    Dafür braucht ihr nur C# und die Phoenix Source, Zeit und ein Gehirn.
    Also als 1. will ich sagen, ich bin ein Noob in C# und der Code ist, scheisse & hässlich aber er funktioniert.
    Fangen wir mit dem Tutorial mal an:
    Schritt 1)
    Erstelle eine neue Klasse in der Source mit folgendem Inhalt :


    Ich war zu faul um alle MySQL dingers einzufügen. Ich sagte der Code sei hässlich :D
    Schritt 2)
    Geht jetzt die ganze Phoenix Source durch und filtert die MySQL Querys.
    Hier ein Beispiel :
    So sah der Code vorher aus.

    Code
    DataRow Row = class6_0.ReadDataRow("SELECT * FROM groups WHERE Id = " + int_0 + " LIMIT 1");


    Und so sollte er nachher aussehen.

    Code
    DataRow Row = class6_0.ReadDataRow("SELECT * FROM groups WHERE Id = " + new SQLI().AntiSQLi(int_0) + " LIMIT 1");


    Noch ein Beispiel :
    Vorher

    Code
    class3.ExecuteQuery(string.Concat(new object[]
    {
    "DELETE FROM achievements_owed WHERE achievement = '",
    (uint)dataRow["achievement"],
    "' AND user = '",
    this.GetHabbo().Id,
    "' LIMIT 1"
    }));


    Nachher

    Code
    class3.ExecuteQuery(string.Concat(new object[]
    {
    "DELETE FROM achievements_owed WHERE achievement = '",
    new SQLI().AntiSQLi((uint)dataRow["achievement"]),
    "' AND user = '",
    new SQLI().AntiSQLi(this.GetHabbo().Id),
    "' LIMIT 1"
    }));


    Und das letzte Beispiel :
    Vorher

    Code
    class6_0.AddParamWithValue("petname" + @class.PetId, @class.Name);
    class6_0.AddParamWithValue("petcolor" + @class.PetId, @class.Color);
    class6_0.AddParamWithValue("petrace" + @class.PetId,@class.Race);


    Nachher

    Code
    class6_0.AddParamWithValue("petname" + @class.PetId, new SQLI().AntiSQLi(@class.Name));
    class6_0.AddParamWithValue("petcolor" + @class.PetId, new SQLI().AntiSQLi(@class.Color));
    class6_0.AddParamWithValue("petrace" + @class.PetId, new SQLI().AntiSQLi(@class.Race));

    Ich hoffe ich hab euch damit geholfen.
    Und ich hab euch gesagt, der Code ist hässlich. Mobbt mich nicht damit xD
    Und nein ich machs euch nicht. Das ist ein riesen Haufen Arbeit JEDE MySQL Query durchzugehen.

  • Du weißt aber schon das AddParamWithValue dafür da ist, das Zeichen wie " und ' entfernt werden? Außerdem ist es sinnlos einen Integer zu sichern, da dieser ja nur eine Zahl sein kann und somit Zeichen wie ' gar nicht beinhaltet. Das Ganze bringt einem also jetzt rein gar nichts.

    Einmal editiert, zuletzt von SteveWinfield (17. November 2013 um 21:25)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!