Commit MetaInfo

Revision763fc2c79727edbd8924ffd43bebcd0623df676b (tree)
Time2019-07-11 06:17:12
Authoryamat0jp <terukohietori@gmai...>
Commiteryamat0jp

Log Message

password が少し良くなりました
運用可能なレベルでしょうか
セキュアには対応していません

Change Summary

Incremental Difference

--- a/Unit1.dfm
+++ b/Unit1.dfm
@@ -82,9 +82,10 @@ object DataModule1: TDataModule1
8282 FieldName = 'DATE'
8383 Origin = '"DATE"'
8484 end
85- object FDTable2PASS: TStringField
85+ object FDTable2PASS: TWideStringField
8686 FieldName = 'PASS'
8787 Origin = 'PASS'
88+ FixedChar = True
8889 Size = 40
8990 end
9091 end
--- a/Unit1.pas
+++ b/Unit1.pas
@@ -40,9 +40,9 @@ type
4040 FDTable3MENTE: TBooleanField;
4141 FDTable3INFO: TIntegerField;
4242 FDTable3COUNT: TIntegerField;
43- FDTable2PASS: TStringField;
4443 FDTable4ID: TIntegerField;
4544 FDTable3PASSWORD: TWideStringField;
45+ FDTable2PASS: TWideStringField;
4646 private
4747 { Private 宣言 }
4848 public
--- a/WebModuleUnit1.dfm
+++ b/WebModuleUnit1.dfm
@@ -1339,7 +1339,7 @@ object TWebModule1: TTWebModule1
13391339 ' <tr><td>'
13401340
13411341 ' <label><p>'#12497#12473#12527#12540#12489'</p><input name="password" type="passwo' +
1342- 'rd" placeholder="'#21066#38500#29992'">'
1342+ 'rd" placeholder="'#21066#38500#29992'" value=<#pass>>'
13431343
13441344 ' </label> / <input type="checkbox" name="show" value="t' +
13451345 'rue" <#check>><p>'#12503#12524#12499#12517#12540'</p>'
--- a/WebModuleUnit1.pas
+++ b/WebModuleUnit1.pas
@@ -3,8 +3,7 @@ unit WebModuleUnit1;
33 interface
44
55 uses System.SysUtils, System.Classes, Web.HTTPApp, Web.DSProd, Web.HTTPProd,
6- Web.DBWeb, System.Variants, System.NetEncoding, System.RegularExpressions,
7- IdHashSHA, IdGlobal;
6+ Web.DBWeb, System.Variants, System.NetEncoding, System.RegularExpressions;
87
98 type
109 TTWebModule1 = class(TWebModule)
@@ -106,7 +105,7 @@ implementation
106105
107106 { %CLASSGROUP 'Vcl.Controls.TControl' }
108107
109-uses Unit1;
108+uses Unit1, IdHashSHA, IdGlobal, IdHash, IdHashMessageDigest;
110109
111110 {$R *.dfm}
112111
@@ -203,17 +202,15 @@ begin
203202 end;
204203
205204 function TTWebModule1.hash(str: string): string;
206-var
207- s: TIdHashSHA512;
208205 begin
209- s := TIdHashSHA512.Create;
210- try
211- result := s.HashStringAsHex(str, IndyTextEncoding_UTF8);
212- finally;
213- s.Free;
206+ with TIdHashSHA1.Create do
207+ begin
208+ try
209+ result := HashStringAsHex(str);
210+ finally
211+ Free;
212+ end;
214213 end;
215- if result = '' then
216- result := 'admin';
217214 end;
218215
219216 procedure TTWebModule1.headerHTMLTag(Sender: TObject; Tag: TTag;
@@ -232,7 +229,9 @@ begin
232229 else if TagString = 'preview' then
233230 ReplaceText := Request.ContentFields.Values['preview']
234231 else if TagString = 'raw' then
235- ReplaceText := Request.ContentFields.Values['raw'];
232+ ReplaceText := Request.ContentFields.Values['raw']
233+ else if TagString = 'pass' then
234+ ReplaceText := Request.ContentFields.Values['password'];
236235 end;
237236
238237 procedure TTWebModule1.indexHTMLTag(Sender: TObject; Tag: TTag;
@@ -572,16 +571,25 @@ end;
572571
573572 procedure TTWebModule1.TWebModule1adminsetAction(Sender: TObject;
574573 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
574+var
575+ s: string;
575576 begin
577+ s := hash(Request.ContentFields.Values['pass']);
576578 with DataModule1.FDTable3 do
577579 begin
578580 Edit;
579581 FieldByName('mente').AsBoolean := Request.ContentFields.Values
580582 ['mente'] = 'on';
581- FieldByName('password').AsString :=
582- hash(Request.ContentFields.Values['pass']);
583+ FieldByName('password').AsString := s;
583584 Post;
584585 end;
586+ with Response.Cookies.Add do
587+ begin
588+ Name := 'user';
589+ Value := s;
590+ Expires := Now + 14;
591+ end;
592+ Request.CookieFields.Values['user'] := s;
585593 TWebModule1adminAction(nil, Request, Response, Handled);
586594 end;
587595
Show on old repository browser