GithubHelp home page GithubHelp logo

aneuch's People

Contributors

ajgraves avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

aneuch's Issues

No way to delete pages from within the wiki

Within Aneuch version 0.10, there is no way for a wiki user to delete a page. 
Administrators can manually remove the page (and all associated archives) from 
the shell, however without shell access, it is impossible to completely delete 
a page.

Original issue reported on code.google.com by [email protected] on 11 Jul 2012 at 2:24

broken links

There are broken links.
Navbar: HomePage, RecentChanges 
Discuss SomePage (HomePage): SomePage (HomePage left corner below)

What steps will reproduce the problem?
1. Install wiki

What is the expected output?
1. $DiscussLink = $DiscussPrefix . $ShortPage;
2. $DiscussLink = $ShortUrl . $DiscussLink;
3. $NavBar = "<a href='$Url$DefaultPage' title='$DefaultPage'>$DefaultPage</a> 
".
4. "<a href='".$ShortUrl."RecentChanges' title='RecentChanges'>".

What do you see instead?
1. $DiscussLink = $ShortUrl . $DiscussPrefix . $ShortPage;
2. $DiscussLink = $DiscussLink;
3. $NavBar = "<a href='$DefaultPage' title='$DefaultPage'>$DefaultPage</a> ".
4. "<a href='RecentChanges' title='RecentChanges'>".

What version of the product are you using? On what operating system?
version 0.10 on Ubuntu


Original issue reported on code.google.com by [email protected] on 20 Jul 2012 at 9:35

Copyright and licenses

This project looks like an Oddmuse derivative but all the copyright statement and the GPL have been replaced by a different license.

Highlight search string on page load from search results

In DoSearch, append "?highlight=$search" to page links.

In DoRequest, check GetParam('highlight') and sub it out:

my $text = Markup($Filec{text});
$text =~ s#($search)?#<span style="background: yellow;">$1</span>#ge;

Completely untested code, will need to validate I got it right.

Create "shortcodes" mechanism

Similar to WordPress "shortcodes", create a mechanism that allows plugins to 
create "codes" that are replaced by function output.

Original issue reported on code.google.com by [email protected] on 28 Jan 2013 at 8:20

Search bar broken in admin panel

If you attempt to search using the search bar from the admin panel, the search will not be successful. This is due to the parameter "do" still being set to "admin", rather than "search"

mailto links don't work

If a user wants to have a mailto link in a wiki page, there is currently no way to accomplish this.

Add ability to delete arbitrary revision numbers

Aneuch allows you to edit past revisions (technically this isn't true, if you "edit" a past revision, it makes the text from that revision the newest revision). Maybe it should allow you to delete arbitrary revisions (say you have 50 revisions of a page, and you want to remove the first 20 revisions).

Sanitize page name in InitVars

In InitVars, the $Page element should be sanitized similarly:

if($Page !~ /([a-zA-Z0-9._~#,-]+)/) {
  $Page =~ s/[^a-zA-Z0-9._~#,-]//g;
  ReDirect($Url.$Page);
  exit 0;
}

This is, of course, untested so far.

Page Index not being used

Aneuch keeps a page index, however it's not currently used by anything. The ListAllPages sub is actually pulling "live data" from the filesystem.

So, either a) the page index needs to be eliminated, or b) the page index needs to be used as it is intended.

If option b, then modify ListAllPages to pull from the page index by default, or accept a single parameter "force" which if set will pull the "live data" instead.

Incorrect spam accusations

What steps will reproduce the problem?
1. Attempt to post a comment on any page on http://aneuch.myunixhost.com/
2. Fill in the anti-spam and other fields correctly

What is the expected output? What do you see instead?
I get taken to a page that tells me to stop spamming.

What version of the product are you using? On what operating system?
Version 0.22 (version on site as of posting date)

Original issue reported on code.google.com by [email protected] on 29 Aug 2013 at 8:30

PCRE grep broken on some platforms

I found that PCRE grep extensions don't work on some platforms and/or systems. We need to check 'grep -P' and see if it fails. If it does, search for 'pcregrep'. If that doesn't exist, then what?

Ability to filter searches

Update DoSearch to allow for filtering of results (at least by page title). This isn't particularly a useful feature by itself, but plugins like the Quick Note plugin could use this feature to allow one to quickly search just the Quick Note entries.

Page history for uploaded files

The page history page should not show line, word, and character count for pages that are file uploads (this data is nonsensical in this usage case). Should still show total size though.

DoDiff: Better explanation

Something needs to be done to the DoDiff page to better separate the sections. Perhaps add a message "Showing revision XXX" before displaying the page revision. Maybe show a special background color for the diff section?

'summary' field should process through UnquoteHTML in WritePage

Since GetParam calls QuoteHTML, the summary field in WritePage should be run through UnquoteHTML. We should have as close to "raw" (albeit tainted) data in the page file itself, and be sure that anything we know is tainted data gets processed through QuoteHTML later (at display time).

XSS vulnerability everywhere

Although taint checking is on, it seems like there are no checks at all.

Some examples (you have to make someone click this link):

  • ?do=admin;page=index<script>alert('badum-tss')</script>
  • ?do=admin<script>alert('badum-tss')</script>test (even though it errors out, javascript still runs)
  • possibly more…

This, however, does not let you to leave some malicious javascript on the page and then just sit back.

But this does:
screenshot with <b> injected into page name
(arbitrary html injected into page name. In this case, it is <b>)

Please note that I was actually aiming for write access vulnerability (mentioning it because it can be seen on the screenshot). Possibly problematic lines:

sub WriteDB {
  # We receive file name, and hash
  my $filename = shift;
  my %filedata = %{shift()};
  $filename =~ m/^(.*)$/; $filename = $1;
  open(FILE, ">$filename") or push @Messages, "WriteDB: Unable to write to $filename: $!";

It seems like taint checking has turned on its alarms on this code, but was just silenced off. The problem with arbitrary filenames is that you can pass any kind of stuff there, for example /../../somefile. This should work! Unfortunately (luckily), I was unable to get it to work, but it should be investigated. Basically the first character will be used as a path in $PageDir (let's say data/), which turns it into data///../../somefile – perfectly valid file path. I wonder why I couldn't get it to write the file…

(Sorry if you don't like such reports to be posted on GitHub. I see no problem in posting it here publicly. The whole thing is about poking <b> into various places for 30 minutes)

Untaint variables

Taint mode (-T) switch is turned on, however there are no efforts to actually untaint data in the code.

plugins/Links.pl: Anchor 'bottom' missing

The Links.pl plugin will re-direct to "Links#bottom" after form submission, however, the bottom anchor doesn't exist on the page. This should probably be added just before the input form.

Update SearchForm

The SearchForm sub needs to be updated with the new search form, and the DoHeader sub needs to have the hard-coded form remove and call print on SearchForm().

Update $NewPage

$NewPage should be updated in InitVars to a new default.

$NewPage = 'It appears that there is nothing here. Perhaps you'd like to '.CommandLink('edit', $Page, 'create it', "Create a new page titled $Page").'?' unless $NewPage;

In DoAdminDeleted, give the option of manually deleting pages

Using the DeletedPage text to mark a page for deletion causes it to show up in the admin panel under "List pending deleted pages" which calls DoAdminDeleted. Inside this sub, give the admin user the option to force delete the page (and its associated history) with a simple click.

To facilitate this, DoMaintDeletePages should be modified to accept an optional parameter, call it "force". If force is set to 1, then:

my $RemoveTime = $TimeStamp - $PurgeDeletedPage;

becomes:

my $RemoveTime = ($force) ? $TimeStamp : $TimeStamp - $PurgeDeletedPage;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.