Jump to content

C++ std::string automātiska notīrīšana


nemirst
 Share

Recommended Posts

Gribēju uztaisīt, lai std::string spēj aiz sevis automātiski notīrīt no atmiņas (ar nullēm) savu glabājamo tekstu. Piemēram, glabāju paroli un negribu, lai pēc string iznīcināšanas kaut kur atmiņā tā paliktu nolasāma. Sapratu, ka nepietiek, ja iztīra tikai to, ko var dabūt caur c_str() metodi, jo saturs var būt iepriekš izmētāts dažādākajos veidos atmiņā, piemēram, samazinot stringu netiks notīrīta atmiņa. Tam var palīdzēt sava std::allocator implementācija, piemēram, http://codereview.stackexchange.com/questions/107991/hacking-a-securestring-based-on-stdbasic-string-for-c. Man tikai šis piemērs nekompilējas un nesaprotu, kam domāts " namespace std {" bloks. Vēl paliek arī problēma ar SSO (Short String Optimization), jo tam parasti ir speciāls iekšējs buferis stekā string implementācijā, kurš netiks veidots/atbrīvots ar allocator. Īpaši uz atbildi neceru, jo šis laikam advanced topiks - vai ir iespējams vispār šo mazo buferi automātiski notīrīt? Un varbūt kāds var pakomentēt to bloku, kuru nesaprotu.

Link to comment
Share on other sites

Anonīms Alkoholiķis

Advanced topiks no usera kas nesaprot, kam ir "namespace std"..

 

kura bridi String objekts veic sso, it seviski ja strings nav zinams kompilacijas laika?

Link to comment
Share on other sites

Es biju domājis, par saturu, kas ir iekš namespace std. Bet ok, es tagad nesākšu aizstāvēt tamlīdzīgus izteikumus, kā tas parasti gadās šajā forumā - nav jēgas. Neesmu pētījis, bet man šķiet, ka SSO ir realizēts runtime, paskatoties, cik garš ir strings un tad ievieto to iekšējā buferī, ja tas ir pietiekami īss. Tāpēc pieļauju, ka ir neliels space overhead std::stringam, ja arī tas ir tukšs. Pretējā gadījumā izmanto allocator.

Labots - nemirst
Link to comment
Share on other sites

Back Door Man

kurš klauns Tev teica/mācija, ka dzēšana kaut ko pasargās?! lieto kripto, nevis jājies ar atmiņu adresēm kuras vēlāk programmai var izrādīties noderīgas.

Link to comment
Share on other sites

Anonīms Alkoholiķis

Pats ari esi klauns. Uz ka lai kripto saktu lietot, ja ne nesifretiem/plaintext ievaddatiem?

Labots - Anonīms Alkoholiķis
Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...