{"id":875,"date":"2011-07-17T12:25:00","date_gmt":"2011-07-17T10:25:00","guid":{"rendered":"http:\/\/blog.m-ri.de\/?p=875"},"modified":"2011-07-17T17:43:54","modified_gmt":"2011-07-17T15:43:54","slug":"zur-abwechslung-mal-ein-kleines-quiz-was-ist-das-problem-mit-diesem-template","status":"publish","type":"post","link":"http:\/\/blog.m-ri.de\/index.php\/2011\/07\/17\/zur-abwechslung-mal-ein-kleines-quiz-was-ist-das-problem-mit-diesem-template\/","title":{"rendered":"Zur Abwechslung mal ein kleines Quiz: Was ist das Problem mit diesem Template?"},"content":{"rendered":"<p>Folgender Code wurde in einem Programmteil von uns eingebaut:<\/p>\n<pre lang=\"cpp\">template &lt;class T&gt;\r\nvoid SecureClearString(T &amp;strText)\r\n{\r\n  ::SecureZeroMemory(strText.GetBuffer(0),strText.GetAllocLength());\r\n  strText.Empty();\r\n}<\/pre>\n<p>Der Sinn und Zweck sollte sein, dass der Inhalt einer CString Variable durch diesen Code \u00fcberschrieben und anschlie\u00dfend freigegeben wird, damit zum Beispiel ein Kennwort oder ein Benutzername nicht mehr im Speicher lesbar bleibt.<br \/>\nDie Anwendung sieht in etwa so aus (war allerdings noch in einer Klasse gekapselt):<\/p>\n<pre lang=\"cpp\">CString strPassword;\r\n...\r\n\/\/ Fill password and use it\r\n...\r\nSecureClearString(strPassword);<\/pre>\n<p>Doch leider ist was faul mit dem Code&#8230; zwei Probleme gibt es mit diesem St\u00fcck Code.<br \/>\nMeine Frage an meine Leser lautet nun was \u2753<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Folgender Code wurde in einem Programmteil von uns eingebaut: template &lt;class T&gt; void SecureClearString(T &amp;strText) { ::SecureZeroMemory(strText.GetBuffer(0),strText.GetAllocLength()); strText.Empty(); } Der Sinn und Zweck sollte sein, dass der Inhalt einer CString Variable durch diesen Code \u00fcberschrieben und anschlie\u00dfend freigegeben wird, damit zum Beispiel ein Kennwort oder ein Benutzername nicht mehr im Speicher lesbar bleibt. Die Anwendung &hellip; <a href=\"http:\/\/blog.m-ri.de\/index.php\/2011\/07\/17\/zur-abwechslung-mal-ein-kleines-quiz-was-ist-das-problem-mit-diesem-template\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eZur Abwechslung mal ein kleines Quiz: Was ist das Problem mit diesem Template?\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[30,3,27,172],"tags":[99,370,352,136],"class_list":["post-875","post","type-post","status-publish","format-standard","hentry","category-c","category-programmieren","category-vs2008","category-vs2010","tag-bug","tag-c","tag-mfc","tag-qualitaetssicherung"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/875","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/comments?post=875"}],"version-history":[{"count":1,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/875\/revisions"}],"predecessor-version":[{"id":878,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/875\/revisions\/878"}],"wp:attachment":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/media?parent=875"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/categories?post=875"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/tags?post=875"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}