{"id":38884,"date":"2018-06-18T03:01:18","date_gmt":"2018-06-17T17:01:18","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/ITblog\/?p=38884"},"modified":"2018-06-17T18:34:09","modified_gmt":"2018-06-17T08:34:09","slug":"monthly-chronicler-password-protect-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/monthly-chronicler-password-protect-tutorial\/","title":{"rendered":"Monthly Chronicler Password Protect Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/monthly_chronicler.html\"><img decoding=\"async\" style=\"float:left;border: 15px solid pink;\" alt=\"Monthly Chronicler Password Protect Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/monthly_chronicler_pp.jpg\" title=\"Monthly Chronicler Password Protect Tutorial\"  \/><\/a><p class=\"wp-caption-text\">Monthly Chronicler Password Protect Tutorial<\/p><\/div>\n<p>When you have sensitive data involving personal information and monetary matters you ideally need to &#8230;<\/p>\n<ul>\n<li>involve SSL (ie. https: type URLs) &#8230; and as far as passwords are concerned &#8230;<\/li>\n<li>it is best to hash your passwords rather than encrypt them<\/li>\n<\/ul>\n<p> &#8230; but just bear in mind there is a fair bit to that latter idea.  Today, we are going to offer users a way to shield prying eyes from seeing their &#8220;diary&#8221; entries with our &#8220;Monthly Chronicler&#8221; web application, but we will not be hashing passwords to achieve this.  Please do not think that none of the concepts below will not affect your security of data here &#8230;<\/p>\n<ul>\n<li>somebody clearing the web browser cache &#8230; though the affect of this is that your data is wiped rather than found out<\/li>\n<li>somebody examining the HTTP Cookies separately to find your data &#8230; there is mild encryption, but as you will read on the &#8220;net&#8221;, encryption is not enough for true password protection, database usage with password hashing is much better<\/li>\n<\/ul>\n<p> &#8230; nevertheless, for the most part, what we do today extending the functionalities introduced with yesterday&#8217;s <a title='Monthly Chronicler Primer Tutorial' href='#mcpt'>Monthly Chronicler Primer Tutorial<\/a> serve a purpose for the vast majority of users on the net, that being if you indicate that you want some data not to be shared, then the user, as a reasonable person, will oblige, and not go snooping.<\/p>\n<p>Our simple approach today is that with either or both &#8230;<\/p>\n<ul>\n<li>personal details &#8230; and\/or &#8230;<\/li>\n<li>any date clicked\/touched to chronicle something<\/li>\n<\/ul>\n<p> &#8230; now has functionality available to the user (by appending ?password=[theirPassword] to their displayed data) to password protect the current <i>web browser and https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/monthly_chronicler.html<\/i> usage pairing.  Others not knowing this password (and personal details pairing) can still use the web application, but any HTTP Cookie stored information &#8220;does not stick&#8221; for them.<\/p>\n<p>Feel free to rejoin us, trying it out at (<a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/monthly_chronicler.html-GETME\" title=\"monthly_chronicler.html\">the changed<\/a>) <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/monthly_chronicler.html-GETME\" title=\"monthly_chronicler.html\">monthly_chronicler.html<\/a>&#8216;s <a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/monthly_chronicler.html\" title=\"Click picture\">live run<\/a> link.<\/p>\n<hr>\n<p id='mcpt'>Previous relevant <a target=_blank title='Monthly Chronicler Primer Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/monthly-chronicler-primer-tutorial\/'>Monthly Chronicler Primer Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/monthly_chronicler.html\"><img decoding=\"async\" style=\"float:left;border: 15px solid pink;\" alt=\"Monthly Chronicler Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/monthly_chronicler.jpg\" title=\"Monthly Chronicler Primer Tutorial\"  \/><\/a><p class=\"wp-caption-text\">Monthly Chronicler Primer Tutorial<\/p><\/div>\n<p>We&#8217;ve got a new web application for you today.  We&#8217;re calling it a &#8220;Monthly Chronicler&#8221;, which is a web application like a &#8220;Calendar&#8221; or &#8220;Planner&#8221; or &#8220;Diary&#8221;, where the user can personalize the entries according to a date, with whatever information they want.<\/p\n\n\n\n<p>This idea is of limited applicability unless it is a bit accountable, and at this first draft, the accountability comes in the form of saving a user&#8217;s personalized data into <a target=_blank title='Cookie information from w3schools' href='http:\/\/www.w3schools.com\/js\/js_cookies.asp'>HTTP Cookie<\/a> data form.  As you might know from online shopping experience that you have, the use of HTTP Cookies can mean a web application can resume another call of the web application and load in your previous data, ideal for a &#8220;Monthly Chronicler&#8221;.<\/p>\n<p>Other features are &#8230;<\/p>\n<ul>\n<li>use of HTML details\/summary element pairing (to allow for display. or not, of previously entered data) &#8230; nesting &#8230;<\/li>\n<li>use of HTML div contenteditable=&#8221;true&#8221; (for ease of user editing purposes)<\/li>\n<\/ul>\n<p>Join us trying it out at <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/monthly_chronicler.html_GETME\" title=\"monthly_chronicler.html\">monthly_chronicler.html<\/a>&#8216;s <a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/monthly_chronicler.html\" title=\"Click picture\">live run<\/a> link. With such a web application it can suit being a web browser&#8217;s home page to &#8230;<\/p>\n<ul>\n<li><a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/monthly_chronicler.html\" title=\"Click picture\">just show you your calendar of entries for the current year<\/a> ( https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/monthly_chronicler.html )<\/li>\n<li><a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/monthly_chronicler.html?today=y\" title=\"Click picture\">highlight today&#8217;s date on the &#8220;monthly chronicler&#8221;<\/a> ( https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/monthly_chronicler.html?today=y )<\/li>\n<li><a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/monthly_chronicler.html?clicktoday=y\" title=\"Click picture\">click today&#8217;s date ready for you to &#8220;diarise&#8221;<\/a> ( https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/monthly_chronicler.html?clicktoday=y )<\/li>\n<li><a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/monthly_chronicler.html?year=2017\" title=\"Click picture\">show a previous year&#8217;s activities<\/a> ( https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/monthly_chronicler.html?year=2017 )<\/li>\n<\/ul>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d38862' onclick='var dv=document.getElementById(\"d38862\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/calendar\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d38862' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d38884' onclick='var dv=document.getElementById(\"d38884\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/password\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d38884' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>When you have sensitive data involving personal information and monetary matters you ideally need to &#8230; involve SSL (ie. https: type URLs) &#8230; and as far as passwords are concerned &#8230; it is best to hash your passwords rather than &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/monthly-chronicler-password-protect-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,14,37],"tags":[180,2584,2442,1860,2310,2582,342,386,2586,576,652,2585,1564,2583,997,1114,1682,2311,1319],"class_list":["post-38884","post","type-post","status-publish","format-standard","hentry","category-elearning","category-event-driven-programming","category-tutorials","tag-calendar","tag-chronicler","tag-contenteditable","tag-cookie","tag-details","tag-diary","tag-div","tag-encryption","tag-hashing","tag-html","tag-javascript","tag-monthly-chronicler","tag-password","tag-planner","tag-programming","tag-security","tag-ssl","tag-summary","tag-tutorial"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/38884"}],"collection":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/comments?post=38884"}],"version-history":[{"count":5,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/38884\/revisions"}],"predecessor-version":[{"id":38890,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/38884\/revisions\/38890"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=38884"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=38884"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=38884"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}