AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi [Warning] Unit.pas(747): Unsafe code 'String index' ????
Thema durchsuchen
Ansicht
Themen-Optionen

[Warning] Unit.pas(747): Unsafe code 'String index' ????

Ein Thema von bundy · begonnen am 26. Jun 2003 · letzter Beitrag vom 27. Jun 2003
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#11
  Alt 26. Jun 2003, 15:20
Compiler Errors: Delphi
Unsafe code '<element>'

List of compiler error messages

You have used a data type or operation for which static code analysis cannot prove that it does not overwrite memory. In a secured execution environment such as .NET, such code is assumed to be unsafe and a potential security risk.
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#12
  Alt 26. Jun 2003, 15:32
Moin Bundy,

bei HugeStrings, also Strings ohne Längenangabe in der Deklaration, wird beim Zugriff auf den Index [...] keine Bereichsüberprüfung gemacht, man kann also mit dem Index auf Bereiche zugreifen, die hinter den eigentlichen Daten des Strings liegen.
Damit ist dann also der Zugriff auf Speicherbereiche möglich die ansonsten eigentlich nicht im Zugriff sind.
(soviel zum Thema: Sichere Stringverwaltung in Delphi )

Dies wird für .NET als unsicher angesehen, und deshalb mit einem Warning kenntlich gemacht.

Vielleicht hilft ja Luckies Vorschlag, StringReplace zu benutzen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#13
  Alt 27. Jun 2003, 11:52
Was heist das jezt genau ?

was bewirkt REPLACESTRING ? für dummys
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#14
  Alt 27. Jun 2003, 12:01
Moin Bundy,

schau Dir doch einfach erstmal StringReplace in der Hilfe an.
Ist dort eigentlich ausreichende kommentiert.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15
  Alt 27. Jun 2003, 12:06
Das heißt folgendes: Jetzt wird es etwas länger. *tief.luft.hol*

Nehmen wir an du hast zwei Variablen auf dem Stack abgelegt:
Code:
v2
v1
Jetzt hängst du an v2 etwas hintendran. Der Speicher Bereich für v2 ist aber nbicht groß genug, da keine Bereichsüberprüfung statt findet, weder vom Compiler zur Kompilierzeit, noch vom System zu Laufzeit, wird v1 überschrieben. Geschieht das versehentlich, ist das nicht weiter schlimm, dein Programm wird sich wohl nur verabschieden, da wenn v1 eine Rücksprungadresse enthält, dein Programm an einen blödsinnigne Punkt zurückspringt.

Jetzt kann man das aber auch gezielt machen. Und wenn in v1 eine Rücksprungadresse liegt, kann ich diese mit einer neuen Rückspringadresse überschreiben. Und diese neue Rücksprungadresse zeigt auf bösartigen Code, der vorher im Speicherbereich deines Programmes abgelegt wurde. Deinem Programm und Windows ist es egal, wohin zurückgesprungen wird, denn beide merken nicht, dass an die falsche Adresse zurückgesprungen wird. Folge: Dein programm führt den bösartigen Code aus, ohne es zu merken. In diesem Zusammenhang spricht man auch von einem sogenannten BufferOverflow.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#16
  Alt 27. Jun 2003, 12:06
Meine Hilfe ist in Englisch. (lol)

dachte mir Ihr könntet mir das erklären.
Sorry für die Frage.
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#17
  Alt 27. Jun 2003, 12:13
Delphi-Quellcode:
type
  TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);
function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string
S: String in dem ersetzt werden soll.
Oldpattern: String der ersetzt werden soll.
NewPattern: Durch was erstezt werden soll.
Flag: Wie ersetzt werden soll.

Lies auch noch mal mein letztes Posting auf der ersten Seite, ich habe mir so viel Mühe gegeben.

Es gibt bei Borland übrigens eine Deutsche Hilfe zu D6 Personal. Ups, du hast ja D7 Professional. Warum hast du dir keine deutsche Version gekauft, wenn du mit englisch nicht klar kommst?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#18
  Alt 27. Jun 2003, 12:19
JO danke für die Hilfe.

Ich dachte ich lerne English.


Danke noch mal
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz