Creating a special role for User which should use token_auth for security reasons

As i asked in my last post ( 301 Moved Permanently ) i would like to suggest to create a special role for the token_auth function to set the Client IP via token authentication. Please ask me, if there any more questions.

In my mind it could be helpful to restrict the users with the function “token_auth” to a special role for security reasons. This users shouldn’t have admin rights!

Thank you and kind regards,

towerlexa

Hi, i’ve a question, is the feature suggestion accepted for on of the next releases?
Thank you very much,
towerlexa

Hi @All,

i would like to ask once more belonging my feature request.

As recommended by ( Matt i filed this feature request for over one year.

Could you give me please some feedback what about this request ?

What exactly is your feature request?

Gerne auch auf Deutsch: Was genau ist dein Feature Request? Leider wird das aus dem englischen nicht klar.

Hallo Fabian,

danke für Deine Antwort. Ich schreibe dann mal hier der Einfachheit halber auf deutsch.

Im o.g. Link ==> 301 Moved Permanently war der Wunsch definiert.

Im wesentlichen geht es darum, dass ich beim Aufruf der Tracking API:


80.237.133.50 - - [02/Jun/2012:12:44:17 +0200] "GET /piwik.php?idsite=4&rec=1&apiv=1&r=614764&[b]cip=80.226.24.15[/b]&_id=671edb53f8b79890&res=1600x1400&url=http%3A%2F%2Freisen.blaufotograph.de%2F&urlref=http%3A%2F%2Freisen.blaufotograph.de%2Firland%2Firland_2008%2Firland.php&action_name=Title%3A+reisen.index HTTP/1.1" 200 43 "-" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:12.0) Gecko/20100101 Firefox/12.0"

das auth_token eines AdminUsers mitgeben muss! Da dies nun an sich schon ein SecurityIssue darstellt war meine Frage, ob man in Piwik wenigstens eine Rolle einrichten kann, die keine administrativen Rechte erfordert. Der auth_token ist ja meines Wissens so etwas wie ein digitaler Schlüssel, der es mir erlaubt, mich ohne weitere Authentifizierung an der Piwik-Instanz anzumelden. Wenn ich diesen nun in meinen Webseiten übergeben muss, dann ist dies für mich einfach ein deutliches Sicherheitsrisiko.
Hier ein Beispielcode, wie es eingebunden ist.


	// $IDSITE = "4";
	$piwikTracker = new PiwikTracker( $idSite = $IDSITE );
	// You can manually set the visitor details (resolution, time, plugins, etc.)
	// See all other ->set* functions available in the PiwikTracker.php file
	$piwikTracker->setResolution(1600, 1400);
	// $_SERVER['REMOTE_ADDR']
	//$piwikTracker->setIp( $_SERVER['REMOTE_ADDR'] );
	// $piwikTracker->setCustomVariable(1, 'UserID', $_SERVER['REMOTE_USER'], visit );

	// setTokenAuth => f1234455666777t555676zzt5rxxyyyr - User: tracking_user_id
        // => natürlich gibt es die ID und den User nicht!
	$piwikTracker->setTokenAuth( "f1234455666777t555676zzt5rxxyyyr" );
	
	//$_SERVER['HTTP_REFERER']
	// Sends Tracker request via http
	//$piwikTracker->doTrackPageView('Title: ' . $seiten . ' -- ' . $_SERVER["PHP_SELF"]);
	$piwikTracker->doTrackPageView('Title: ' . $seiten );
	
	// You can also track Goal conversions
	//$piwikTracker->doTrackGoal($idGoal = 1, $revenue = 42);


Mit der Zeile


$piwikTracker->setTokenAuth( "f1234455666777t555676zzt5rxxyyyr" );

habe ich nun im Quellcode meiner Seite eine hochsensible Information stehe die nun dazu verwendet werden kann, sich bei meiner Piwik-Installation anzumelden. Daher war im o.g. Thread eben die Frage, ob man nicht für die reine Trackingauthentifizierung ein unpriviligierte Rolle einfügen kann.

Matt meinte nun, dass ich dafür einen FeatureRequest erzeugen soll und seitdem bekam ich trotz des Verweises auf den o.g. Thread keine Antwort mehr.

Vielleicht lag es nun daran, dass ich nicht alle Details noch einmal ganz klar beschrieben hatte, war aber davon ausgegangen, dass der Hinweis auf den Originalthread ausreichend sei… Offensichtlich war das mein Fehler :wink:

Dazu lässt sich zweierlei sagen:

  1. Es ist nicht ohne weiteres möglich dieses Feature zu realisieren. Der token_auth hängt an sehr vielen Stellen im Code mit drin. Feature-Requests solltest du, gut formuliert, unter http://dev.piwik.org erstellen - im Forum gehen solche Threads leider viel zu schnell unter.
  2. Das überschreiben der IP ist ein Feature, dass für den Log-Import implementiert wurde. Dabei läuft alles serverseitig ab. Ähnlich verhält es sich dabei mit dem serverseitigem PiwikTracker (libs/PiwikTracker) - hierbei würde dein token_auth niemals in fremde Hände geraten (außer natürlich jemand erhält Zugriff auf deinen Code).

Ich verstehe natürlich deine Sorge, sehe aber keinen akuten Handlungsbedarf, da der token_auth nur von einem Admin und nicht dem Superadmin sein muss.

[quote=“Fabian Becker”]

  1. Es ist nicht ohne weiteres möglich dieses Feature zu realisieren. Der token_auth hängt an sehr vielen Stellen im Code mit drin. Feature-Requests solltest du, gut formuliert, unter http://dev.piwik.org erstellen.[/quote]
    Hallo Fabian,

Meinst Du denn, es macht Sinn, dies noch als Feature-Request zu stellen? Der ganze Quatsch fing eigentlich nur an, weil ich die PiwikTracker.php zum tracken der Requests benutzen wollte und die IP des Clients nicht korrekt erkannt wurde. So habe ich diese nun mit der Funktion in [2] überschrieben.

Das mag ja sein, dass das Überschreiben für den Log-Import gedacht war, jedoch hatte mir Matt extra das Feature ans Herz gelegt um die korrekte IP übergeben zu können. Leider wurde ja, wie in meinem ersten Beitrag geschrieben die Client-IP nicht korrekt übergeben. Das Überschreiben der IP war dann die Lösung :wink:

[quote=“Fabian Becker”]
Ich verstehe natürlich deine Sorge, sehe aber keinen akuten Handlungsbedarf, da der token_auth nur von einem Admin und nicht dem Superadmin sein muss.[/quote]

Ich seh das u.U. doch ein wenig anders… weil eben doch ein “Account” mit deutlich zu viel Rechten in der Gegend rumfliegt :wink: