Subversion Repositories oidplus

Rev

Rev 727 | Rev 776 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 daniel-mar 1
 
239 daniel-mar 2
RECENT STUFF
412 daniel-mar 3
- At a lot of forms, if you press "enter", the "form" will not be submitted (e.g. "create ra" plugin), cannot reproduce?
512 daniel-mar 4
- Default language selection: Either always en-US, or automatical selection depending on browser language, or depending on admin setting (e.g. german companies offer a german repository by default)?
619 daniel-mar 5
- BCrypt
6
	Make #rounds and length of admin password configurable (pre-baseconfig?)
7
	Include dev/bcrypt_cost_calculator somewhere in the configuration page?
8
	... At least give a hint to the documentation, so they know how to run the tool and how to enter the cost in the configuration (for RA and Admin)
643 daniel-mar 9
	... or in the setup page make an extra control how complex the admin password should be? but be aware that nobody enters a too big number (it makes DoS possible!)
695 daniel-mar 10
- system log plugin: Only show 100 events and let the user switch pages. To avoid that you load a page with 10000+ log entries!
532 daniel-mar 11
 
774 daniel-mar 12
Treeview / Navigation:
13
- In the tree, let the operator create "shortcuts" to important OIDs?
14
- Define "critical" OIDs which should always be visible; this means: the tree will always be extended so that these OIDs are shown?
15
 
16
OID WHOIS:
17
- Rename to "OID IP"
18
- If the operator has a WHOIS server, then show the hostname and port, e.g. "whois.viathinksoft.de:43"
19
 
532 daniel-mar 20
SECURITY Improvements:
21
- Small security issue: A visitor can check which plugins are installed by either entering a "goto" command (e.g. "oidplus:vnag_version_check")
22
  and see which error message appears, or they could try to enter "plugin/adminPages/..." using the web browser and see if the result is HTTP 200 or HTTP 404.
239 daniel-mar 23
 
374 daniel-mar 24
IDEAS FOR NEW FUNCTIONALITIES
318 daniel-mar 25
- Admin plugin "Attachments" with following functionalities:
26
	* Show every object and its attachments, so that the admin knows what's going on
27
	  (Alternatively they can just look in the userdata directory using FTP)
28
	* Give the ability to enable/disable RA uploading/deleting
29
	  (Alternatively they need to do it in the configuration module and enter '0' and '1' by hand)
609 daniel-mar 30
- Make a plugin that shows warnings from plugins (via "feature-interface"), e.g. the registration plugin could warn that CURL is not working correctly etc.
374 daniel-mar 31
	But it should also have JavaScript components, e.g. check if dev/ and other confidential folders can be accessed (see code in setup/)
609 daniel-mar 32
	And what can we do with checks that need a long time to compute?
615 daniel-mar 33
	Also offer VNag?
331 daniel-mar 34
- Excel/CSV import tool for bulk data import (as alternative to XML import. Maybe previous Excel->XML import tool?)
501 daniel-mar 35
- External Syslog server
318 daniel-mar 36
 
499 daniel-mar 37
LDAP / OAUTH
432 daniel-mar 38
- Implement other OAuth providers?
494 daniel-mar 39
	Try out https://github.com/SocialConnect/auth
40
	     or https://github.com/hybridauth/hybridauth
41
- Credentials and API-Keys should be protected or obfuscated or encrypted? (JoomlaKeychainKeychain?)
432 daniel-mar 42
 
308 daniel-mar 43
TINYMCE
399 daniel-mar 44
- mce dirty flag: call performCloseQueryCB()/performCloseCB(), if ...
45
	OK:   The page (browser tab) is about to be closed or the page is reloaded
46
	      => TinyMCE uses the window.onbeforeunload event
47
	TODO: The browser navigation buttons are clicked
48
	      => This only works PARTIALLY. Preventing popstate() works and no data is lost,
49
	         but the browser will think that it was successful!!
50
	OK:   When a node at the jsTree is clicked (conditional select)
51
	OK:   In the openOidInPanel() function, i.e. when you enter something into the goto-bar.
52
- critical bug: open page, edit tiny mce, click save. Then F5 reload (not Ctrl+F5): then the old content is there again. Except if you press Ctrl+F5
53
	(cannot be reproduced anymore? tested with firefox and chrome)
402 daniel-mar 54
- TinyMCE "isDirty" does not correctly work on Internet Explorer: It always reports "dirty"
404 daniel-mar 55
	see bug https://github.com/tinymce/tinymce/issues/6048
399 daniel-mar 56
- The "is dirty" check should also include the "Title" input box
308 daniel-mar 57
 
239 daniel-mar 58
WHOIS
201 daniel-mar 59
- webwhois: beside TXT/XML/JSON more output modi?  CSV, S/MIME  (and add the S/MIME keypurpose to the X.509 certificates)
239 daniel-mar 60
- whois query 'oid:' should show all root entries (subordinate entries), but there is only the message "not found"
43 daniel-mar 61
 
292 daniel-mar 62
SETUP
157 daniel-mar 63
- There should be a "test database connection" button
500 daniel-mar 64
	=> however, this button could be abused to brute-force database connections,
65
	   and even abusing the server to connect (brute-force) to foreign database servers
157 daniel-mar 66
 
327 daniel-mar 67
DATA TRANSFER PLUGIN
68
- XML import: Let the user decide if existing OIDs shall be overwritten
69
- XML import: Let the user decide if RAs should be created
70
- XML import: Let the user decide if "created=now" should be set
71
- XML import: Waiting animation
72
- XML import: If output (errors) is too long, show them in a page rather than an alert() box
73
 
25 daniel-mar 74
SMALL THINGS
727 daniel-mar 75
- Alpine Linux SVN update: I get the error "svn: warning: W000013: Can't open file '/root/.subversion/servers': Permission denied", although "whoami" is "apache"! (Maybe because the initial checkout was done by root?!)
700 daniel-mar 76
- AutoUpdate via cron?
670 daniel-mar 77
- cron.sh: set a global flag that tells the plugins whether we are calling from crontab,
78
  so that auto publishing et al prefer cron calls and only execute their code
79
  for random visitors, if the crontab is not running.
561 daniel-mar 80
- Login page etc.: If user clicks on a tab, then the gotoedit and static link should change to e.g. "oidplus:login$admin" or "oidplus:login$ra", respectively.
81
        $('#static_link').attr("href", "index.php?goto="+encodeURIComponent(id));
82
        $("#gotoedit").val(id);
532 daniel-mar 83
- Add show_waiting_anim() and hide_waiting_anim() to all AJAX queries, like it is done in plugin "Software update"
451 daniel-mar 84
- #gotobutton should have the same top and height as #gotoedit
446 daniel-mar 85
- Should plugins be able to change the "Content-Security-Policy" header (i.e. to include external JavaScripts frameworks)
267 daniel-mar 86
- RA address data: Country selection box like in OIDInfo
407 daniel-mar 87
	Possible data source: https://datahub.io/core/country-list#resource-data
183 daniel-mar 88
- offer signature checker tool to verify WHOIS responses
351 daniel-mar 89
- minimum menu expansion level: make it configurable for all objects and plugins, e.g. so that when you open OIDplus, all OIDs till level 2 are expanded
183 daniel-mar 90
- Revive the idea of "information objects" = OIDs that contain content
153 daniel-mar 91
- API : Make a function that checks if a RA exists, and use it everywhere where needed
256 daniel-mar 92
- Object type plugins : take care that "treeicon.png" and "icon_big.png" exist everywhere (become standard)
122 daniel-mar 93
- freeoid: gmail app does not hyperlink the activation URL. why?
94
- how to avoid invite spamming?
382 daniel-mar 95
- when a PHP error happens (i.e. the AJAX script did not manage to output a JSON), the AJAX script outputs "Error: SyntaxError: Unexpected token < in JSON at position 0" ... better show the user the actual message, or something more user-friendly at least
109 daniel-mar 96
- when login expired, remove entries in the treeview
256 daniel-mar 97
- disable specific functions (e.g. invite, login, rainfo, forgot password) if the plugins are not installed (check if class type is registered using class_exists())
351 daniel-mar 98
- <abbr> in <code> is double underlined; that's not good
99
- if you have multiple identifiers, how do you tell the system which identifier should be the preferred one?
25 daniel-mar 100
- show whois links only if folder "whois/" exists
46 daniel-mar 101
- disable autocomplete on some forms
379 daniel-mar 102
- graphical improvements of forms (input edits aligned)
68 daniel-mar 103
- "Documents" section: Make documentation for usage of OIDplus (for members only)
499 daniel-mar 104
- admin config more user friendly, e.g. having the enable/disable object type stuff (like in registration wizard) also in the admin control panel
351 daniel-mar 105
- it would be good if after the login, the opened nodes in the tree would stay open
106
- html checkbox: make use of "label for"
88 daniel-mar 107
- when javascript fails, the form will be submitted to './' , that is not good! failed javascript must return false, so that the form does not get submitted
108
- admin: show privacy entries from RAs (but grey, so you know that it is private)
351 daniel-mar 109
- admin should be able to edit contact data of a foreign RA [XXX isn't that already implemented?]
110
- freeoid: hide asn.1 and iri columns, because the RA is not allocating these identifiers?
111
- .... maybe we should have a list of OIDs where the OID does not allocate ASN.1/IRI identifiers... then we can also make use of the OID-WHOIS attributes
379 daniel-mar 112
- Privacy flag of RAs: Should there be more privacy levels, e.g. that you don't show your personal name etc.?
351 daniel-mar 113
- You should be able to change the "created" date for an object! Or maybe hide it completely if you don't know the original creation date?
114
- In the CRUD table, you should be able to see the name of the OID? But on the other hand, the title is not in the control of the Superior RA, and the CRUD table is actually the allocation table of the Superior RA.
115
- natOrder() does only work for OID namespace!!! other sort mechanisms are necessary for other object types
88 daniel-mar 116
- jstree select: automatically scroll down
533 daniel-mar 117
- jstree: right click "open in new tab" is not possible
351 daniel-mar 118
- things like RA: show more things, address, email etc.
360 daniel-mar 119
- note that we (and the RFC) talk about Objects, but actually OIDs only reference objects, but they are not the objects
379 daniel-mar 120
- Multilang
121
	* Not yet translated:
122
		- plugins\publicPages\100_whois\whois\index.php [Problem: This page is kinda standalone and does not include the OIDplus code]
597 daniel-mar 123
		- vendor\danielmarschall\fileformats\fileformats.conf [Problem: This is a third-party code!]
379 daniel-mar 124
		- includes\classes\VtsBrowserDownload.class.php [Problem: This is a third-party code!]
125
	* Is there some useful German translation of the Apache 2.0 license?
499 daniel-mar 126
- WEID UUID: Show the UUID 2.25/GUID equivalent as alternative ID
412 daniel-mar 127
- When an OID is edited/added/deleted, don't reload the whole tree. Instead, just change the tree! This looks much more fluid.
578 daniel-mar 128
- adminPages/902_systemfile_check/OIDplusPageAdminSystemFileCheck.class.php
129
	Should thumbs.db (case insensitive) and Apple turds be excluded?
130
	On the other hand, these files could then be used to hide malicious data
2 daniel-mar 131
 
506 daniel-mar 132
UPDATER
133
- Internal problem with GIT distribution channel:
134
	The GIT version might be behind the master SVN repository
135
	So if you do "git pull", the update/index.php page might still show that an update is available!
136
 
239 daniel-mar 137
DATABASE
264 daniel-mar 138
- SQLite3: Implement Natural OID sorting (natSort)
382 daniel-mar 139
- make usage of Foreign Keys
140
	PROBLEM: we need foreign keys with no check, because
141
	a) we want to keep log entries even if an object/user is deleted
142
	b) log_user.username can also be 'admin' (and therefore not be a foreign key to table 'ra')
143
	c) not every object should have a registered RA. There should be "unknown" RAs where only the email address is known
239 daniel-mar 144
 
25 daniel-mar 145
FUTURE
104 daniel-mar 146
- implement sitemaps xml
88 daniel-mar 147
- admin should be able to change wellknown oids?
2 daniel-mar 148
- move oid to different arc
351 daniel-mar 149
- for very large arcs (e.g. PEN): maybe you should not show everything in the tree select?
150
- support for ORS?
151
- "Cutting Edge Technologie": AJAX, JSON, completely UTF-8, CRUD frameworks, PDO, HTML5, Mobile Design, Pure CSS, Autoloading, Object Oriented (maybe not MVC, though), Testing, ...
64 daniel-mar 152
- "Search" plugin: Feature to search inside documentation (doc/ directory)
104 daniel-mar 153
- "Search" plugin: I want to search in all object types and RAs. Not first select the type.
88 daniel-mar 154
- How can we make sure that example objects are not exported using oid-info.com export?
155
- Administrator-Interface: enable and disable object types
161 daniel-mar 156
- detailled change-history of each oid
2 daniel-mar 157
 
115 daniel-mar 158
BUGS?
499 daniel-mar 159
- BUG! RA is logged in, then it is deleted => the RA can still edit their OIDs, since their session is not destroyed
144 daniel-mar 160
- OIDplus does not work in Safari Mobile!
161
	1. You cannot scroll the OID grid, as the scrolling affects the whole page, not the grid.
162
	2. JQueryUI sliders cannot be dragged
115 daniel-mar 163
 
104 daniel-mar 164
REJECTED IDEAS
501 daniel-mar 165
- well known OIDs: Should also the RA address be recorded? (so that you cannot create a 2.999 OID and telling that you are the RA?)
410 daniel-mar 166
- should there more than one person be able to manage an OID? (multiple emails per "RA" ?)
88 daniel-mar 167
- record first RA and current RA => X.660 does not have this requirement
168
- markers DRAFT, LEAF and FROZEN etc. => use "Protected" if you want to make it invisible
320 daniel-mar 169
- Giving the "goto" argument OIDs instead of names, so that there are no conflict
170
  with plugin vendors (like it was done with the "plugin" argument at ajax.php)
171
	Rejected due to following reasons:
172
	a) The "goto" parameter should usually be human readable (especially since it is shown at the right top)...
173
	   Having a ViaThinkSoft OID there might get the user confused because they could think that the
174
	   page is a OID page request for that OID instead of a plugin page.
175
	b) Vendors should use something like "?goto=oidplus:com.example...."
2 daniel-mar 176
 
433 daniel-mar 177
LOGS
178
- prune logs entries? automatically prune things like "logged in" but not prune OID changes, etc?
179
- admin logs: don't show all logs. load more log entries as soon as the page is scrolled down
180
- when user changed email from "A" => "B", then all previous log events for "A" are not visible for "B" anymore!
181
	=> should we also change the log entry email address references when the user changes their email address?
455 daniel-mar 182
- At "oidplus:system_log", user log section and object log section, the users and/or objects should be clickable
433 daniel-mar 183
 
4 daniel-mar 184
IDEAS
715 daniel-mar 185
- have an option to assign a custom icon to any object in the system (file attachment with name "icon.*"?). Especially useful for easy visual distinguishing between root objects inside 'Other objects', but may be useful for other object types too.
612 daniel-mar 186
- Give configuration settings a type (int, bool, enum, etc.) so that the configuration page can be more user friendly (use a checkbox rather than typing "1" and "0")
187
	Even better: Give plugins the opportunity to display their own config GUI, exactly like OOBE does
501 daniel-mar 188
- OID-WHOIS: For well-known OIDs, e.g. IANA PEN, show information where to retrieve information
189
	=> Problem: Well-known OIDs are implemented as ASN/IRI identifiers only; no information in table "objects"!
190
- Should plugins be able to add additional object sub-nodes/pages into the tree,
191
  which are not "real" objects? For example, in the object tree,
192
  you could include file attachments [by File Attachment Plugin].
193
  Also, Object Type Plugins could add more sub-nodes/pages into the
194
  tree, for example if you have object types where each object
195
  consists of various components.
564 daniel-mar 196
  => currently OIDplus::menuUtils()->tree_populate() handles the object tree loading
426 daniel-mar 197
     ... but shouldn't this task do the plugin publicPages/000_objects ?
198
     ... then we could establish an API which can give object type plugins the possibility to add additional children
407 daniel-mar 199
- Hide/Proxy RA E-Mails from public requests
382 daniel-mar 200
- let users choose their own creation arc
201
- system guid (name based pubkey)?
368 daniel-mar 202
- In regards multilinguality: Allow "oidplus_base$dede.css", so that languages can have their own CSS (e.g. wider "Go" button)
203
	But this means that a language change also need to reload the style sheet (like the color-plugin does when you click "Test")
184 daniel-mar 204
- when an object was not found, the error message could show the next possible known object (like WebWHOIS does)
183 daniel-mar 205
- the "goto" quickbar (at the top right) could also be used to search something ...
206
- ... alternatively, the "object not found" error page could link to the search plugin
142 daniel-mar 207
- make color plugin available for everyone. Admin may permanently save the colors, but users should be able to set their own theme, saved via cookies
4 daniel-mar 208
- there should be a form where an RA can request an invitation, even if the superior RA did not invite them.
209
  the fact that a RA exists in the Object Table should permit the RA to invite theirself.
13 daniel-mar 210
- make a list of OIDs that do not assign ASN1/IRI identifiers (e.g. IANA PEN or ViaThinkSoft FreeOID), then reject any identifier the user provides
26 daniel-mar 211
- sanitize IPv4, IPv6, GUID during creation
212
	bei IPv4 und IPv6: - if it is a single host address, don't put /32 or /128 suffix
213
	                   - strike unnecessary bits that are not defined in the netmask (also at the whois output)
144 daniel-mar 214
- let the sysadmin decide if they want the title be "systemtitle - object title" or "object title - systemtitle"
215
- should a RA be able to mark their own oid as confidential, instead of asking the superior RA?
351 daniel-mar 216
- should there be an OIDplus project page at oidplus.viathinksoft.com instead of a "naked" system?
165 daniel-mar 217
- vendor signature to plugins + viathinksoft signatures + "check" program if all signatures match
451 daniel-mar 218
	Why do we need it?
219
		We want to make sure that the OIDplus files aren't modified by hackers (e.g. replaced by a webshell)
220
		Unfortunately, we can only verify our own files. Plugins by vendors cannot be checked.
221
	Problem:
222
		We cannot store the ViaThinkSoft public key or the checking-tool in the OIDplus directory,
223
		because then they could be altered by the hacker.
224
		We also cannot add a "verified" icon in the "Plugins" admin section,
225
		because this could also be fake.
226
		The only solution to verify the OIDplus installation is to run a tool that
227
		is downloaded on-demand over a secure connection.
228
	Solution:
229
		1. The OIDplus installation contains a file "signature.md5" that contains the MD5 sums of all files.
230
		   The whole file is RSA signed with a ViaThinkSoft key.
231
		2. We should offer a tool which can be started on-demand by running something like:
232
		   curl -sSL https://oidplus.viathinksoft.com/signature_check/ | bash
233
		   This tool contains a check procedure and the ViaThinkSoft public key,
234
		   and verifies the OIDplus installation.
235
		3. The tool should also warn if there are missing or additional files,
236
		   because some additional files may be executed (e.g. if they are located in includes/db_updates/)
237
		4. With every new release of OIDplus, this file must be re-generated!
181 daniel-mar 238
- have a menu item (plugin) "latest updates" which lists OIDs that have been changed or added recently?
204 daniel-mar 239
- (unsure:) would it be good if the superior RA comment is shown in the object page itself?
385 daniel-mar 240
- Protect attachments with a password? (Information objects?)
501 daniel-mar 241
- IPv4/IPv6 plugin: Should we allow that private IPs are put into categories (e.g. different physical locations having the same subnet?)
242
- Like in OOBE, plugins should give the possibility to add an individual UI in the "oidplus:edit_config" page
243
- Login area: The "administrator" node in the treeview could be clicked, leading to a page that contains a link to all sub pages (big icons ordered in a grid?)
612 daniel-mar 244
- "Invisible/service" plugin type, like page plugins, but they have no gui() method
4 daniel-mar 245
 
104 daniel-mar 246
QUESTIONS
4 daniel-mar 247
- should the collation be case sensitive or case insensitive? For Java package names, it should be case senstivie
351 daniel-mar 248
- use word "guid" or "uuid"?
61 daniel-mar 249
- should "OID updated" be split into two categories "updated by superior" (e.g. identifiers) and "updated by owner" (description etc)?
351 daniel-mar 250
- Don't renew "updated" field if you just click "Update" but didn't change anything (e.g. because you just wanted to send an invitation again)
63 daniel-mar 251
- "Documents" section: Can base of URLs/images inside the HTML be changed automatically?
4 daniel-mar 252
 
499 daniel-mar 253
PRIVACY
597 daniel-mar 254
- bring back "vendor/cookiecontent"? DM 28 May 2019: Removed CookieConsent temporarily, because it is placed at the beginning of the page and therefore ruins the Google index ...
215 daniel-mar 255
	=> We might not need it, because cookies are only set during login, and at the login page itself, we already warn about cookies, in addition to the Privacy documentation
379 daniel-mar 256
- Cookie law:
597 daniel-mar 257
	Download CookieConsent code into vendor folder, do not hotlink it
379 daniel-mar 258
	we need to log all consents
259
	do we need an explicit consent at the login form?
260
	do we need a consent for the cookie SSL_CHECK?
214 daniel-mar 261
 
16 daniel-mar 262
GUID Management
263
- Leaf nodes (GUIDs) should show/edit the Title in the CRUD, so you dont have to click the GUID to see the title
351 daniel-mar 264
- weird bug: when i edit "guid:oidplus", then, after reload the treeview after the update, "guid:activedirectory" will be opened. somehow, the last opened node will be opened during the reload?!