Code Monkey home page Code Monkey logo

ximdex / xcms Goto Github PK

View Code? Open in Web Editor NEW
61.0 24.0 19.0 72.53 MB

Headless CMS with wysiwyg editor for XML and HTML5, omnichannel, multi-format and multi-platform decoupled publishing as html5, .net, j2ee, php, RoR, XML, json, RDF, epub, mobile apps, ... into the Cloud. Demo: http://demo.ximdex.com

Home Page: http://www.ximdex.com

License: GNU Affero General Public License v3.0

JavaScript 36.18% Shell 0.19% PHP 33.98% Smarty 5.83% CSS 12.12% XSLT 0.95% HTML 0.86% CoffeeScript 7.84% TSQL 2.06%
cms cms-framework dms semantic-web xml-editor wysiwyg-editor semantic-data html5 json-ld rdfa

xcms's Introduction

Ximdex 4.0 - README

Build Status PHP 7 ready

Ximdex CMS is a Decoupled Headless Semantic Content and Data Management System (headless CMS DMS) that allows the manipulation and generation of content, data and apps to be published in different target technologies: PHP, J2EE, .NET, XML/XSLT, JS, RDF, JSON, RoR, ...

  • Description

    In fact, it is a powerful and versatile Content Management Framework (CMF) to help you manage information in form of data, content or services to be published in the cloud as web portals, structured semantic repositories or linked open datasets.

    With Ximdex CMS you can mix structured and non-structured content and data, represent apps and services, aggregate information from remote sources, capture metadata, annotate it with semantic tags from the visual ontology browser, add a semantic layer and publish it using Dynamic Semantic Publishing (DSP) technologies, automatically generate suggestions to enrich your content (as images, new links or references, ...), etc.

    Ximdex is modular, based on standards (XML, XSLT, RDF, HTML5, ...) and it adds a semantic layer to any managed element (doc, app, picture, metadata, video, etc.) that makes it easy to adapt information to any final exploitation format (html, rdf, j2ee, php, json, RoR, xml/xslt, …) and publish it into the cloud as web portals, semantic portals, mobile services, linked open datasets, APPs, etc.

  • Features

    • Headless CMS & Decoupled Publishing Architecture: Flexible, Secure, Scalable.
    • Neutral: content independent, format agnostic, free structure, open access, ...
    • Information adaptable, structurizable and semantizable with Dynamic Semantic Publishing (DSP) techniques
    • Multichannel in the cloud
    • Visual Edition of XML + automatic transformation of XML
    • Visual Edition of Enriched books to be generated as EPUB or APPs for IOS and Android.
    • Visual Edition of HTML5.
    • Visual Role/User/Workflow edition in an object-action UI
    • Its neutrality and flexibility allows to use any application server or language for the deployment of portals and web applications: .NET, PHP, XML/XSLT, XHTML, HTML5, JSON, RDF, ...
    • Multiple languages, multichannel (Digital TV, Web, smartphones and tablets, APPs, ...) and multiple application servers
  • Future plans

    See our project roadmap at ROADMAP.md

  • Get Involved

    If you are interested on the power of Semantic Web for CMS this is a good starting point!.

  • Availability

    Ximdex CMS is open source with AGPL v3 (see 'LICENSE')

  • Installation

    See 'INSTALLATION.md' for the recommnended installation process.

  • Ximdex Core Requirements

    • A Unix based system with PHP(>= 7.1, and some extra modules), Apache 2 webserver (with modules described in the installation guide) and MySQL (>= 5.7) or MariaDB (>= 10.2) database.
    • In the client side: Firefox (>= 5.0) with Javascript and cookies enabled.
    • An internet connection if you want to use automatic recommendations (as semantic annotations) or publishing into the cloud.

xcms's People

Contributors

ajlucena78 avatar albertodvc avatar alsanchez86 avatar bliping avatar carlos-gn avatar davarresc avatar dimitryurbain avatar drzippie avatar edipotrebol avatar elenaramirez avatar eramirezr avatar jdorador avatar jmrodriguezximdex avatar jmvargas avatar juanpri avatar olea avatar pabletos avatar venespana avatar zaoismael avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xcms's Issues

new folder name scheme

Simplification of names (for insntace, ptd for transformation templates should be xsl templates or directly Transformation Templates)

Chain of actions

It would be necessary to implement a way to concatenate some actions.

you have two parameters exists xss Vulnerability in account create page.

Vulnerability url :
http://demo.ximdex.com/xcms/index.php?action=createaccount
Vulnerability parameters:
sname,fname
payload:
fname=x"><script>alert(document.cookie)</script>//&sname=&email=&recaptcha_response_field=manual_challenge&newsletter=&enviar=Register&recaptcha_challenge_field=
fname=x&sname=x"><script>alert(document.cookie)</script>//&email=&recaptcha_response_field=manual_challenge&newsletter=&enviar=Register&recaptcha_challenge_field=
Vulnerability verification:
1, open the problematic page
2, use hackbar to simulate post submission, submit payload
3, the response page will pop up a cookie based on the inserted js code
4, using another question parameter fname, found to produce the same effect.
image
Repair proposal:
1, limit the input data, does not allow special characters;
2, Do not trust interaction data, filter all tags

Error In Install

( ! ) Fatal error: Call to undefined function posix_getgroups() in C:\wamp\www\xi\inc\install\managers\InstallManager.class.php on line 383
Call Stack

Time Memory Function Location

1 0.0029 163680 {main}( ) ..\index.php:0
2 2.0865 9045600 InstallController->dispatch( ) ..\index.php:126
3 2.0866 9045728 InstallController->compose( ) ..\InstallController.class.php:72
4 2.0866 9045776 InstallStepFactory::getStep( ) ..\InstallController.class.php:99
5 2.0901 9059536 Ximdex\Utils\Factory->instantiate( ) ..\InstallStepFactory.class.php:74
6 2.1591 9207856 GenericInstallStep->__construct( ) ..\Factory.php:85
7 2.1688 9210992 GenericInstallStep->checkPermissions( ) ..\GenericInstallStep.class.php:44
8 2.1688 9211040 InstallManager->checkFilePermissions( ) ..\GenericInstallStep.class.php:117
9 2.1722 9212104 InstallManager->checkGroup( ) ..\InstallManager.class.php:339

Disabled PHP functions on php.ini

When the PHP disable_functions directive contains these functions:

  • pcntl_fork
  • pcntl_waitpid

the publication daemon doesn't work properly.

you have twelve parameters exists xss Vulnerability in search page.

Vulnerability url :
http://demo.ximdex.com/xfind/search
Vulnerability parameters:
filter[0][value];filter[1][value];filter[2][value];filter[3][value];filter[4][value];filter[5][value];filter[6][value];filter[7][value];filter[8][value];filter[9][value];filter[10][value];filter[11][value];filter[12][value];
payload:
javascript:alert(3294)
Vulnerability verification:
1, open the problematic page
image
2, use hackbar to simulate post submission, submit payload
3, the response page will pop up the set contents according to the inserted js code
4, using another question parameters found to produce the same effect.
image
image

port issues

hey there,
wanted to try this on a virtualbox with port forwarding.
So, the url for accessing ximdex on my host system is:
http://localhost:8080/ximdex

But i can't give the port to the install script. if i type it at the appropriate place, i get an error saying the url is incorrect.
But if i specify it without url, it breaks completely

Any ideas?

Regards

Translate XML root element attributes

Ximdex CMS uses an own root XML element to surround every XML file that it handles. This special XML element is called docxap.

For a full translation of the code, it's necessary that the docxap attributes would be translated into english. Here are the list of them and their translation candidates:

  • tipo_documento -> schema
  • idioma -> language
  • idiomas -> languages
  • canal -> channel
  • canales -> channels
  • canales_desc -> channels_desc (used?)
  • nombre_tiponodo -> nodetype-name
  • id_tiponodo -> nodetype-id
  • documento -> document-name
  • nombre_documento -> document-alias
  • proyecto -> project
  • servidor -> server

Redesigning views

There are some visual issues on grid view and table view.

  • The TH elements of the header are in a separate table containing the TR. This makes the width of the columns do not match.
  • This is inherited from the table that could reorder columns in the search engine.
  • You have to put everything in one table or control rather than the width of the columns match in the TH and TR.

Maybe the list view could be removed.

RNG Schema and XSL template samples when creating a new project

Give the user a starting RNG schema and a XSL base template (called docxap) when a new project is created in Ximdex CMS.

In these new files will be shown some use examples and other technics to start developing our own RNG schemes and XSL templates.

Recognize .md files on text editor

Enable markdown support on text edition on common files. It would be necessary to add the proper mimetype to the table RelNodeTypeMimetype: text/x-markdown.

Compile docxap

To avoid Xedit to load all the XSL templates when is opening a XML document, we propose to create a compiled file with all the XSL templates used in it.

Create a ROADMAP file

Just a very schematic brief of the product releases as they are currently planed; i.e.:

v3.4, 2nd Quarter 2013 (published May 16th, https://github.com/XIMDEX/ximdex/wiki/ximdex-3.4-released)

  • Refactoring of code to remove deprecated components
  • Update to new versions of jquery, query UD and smarty.
  • Update to PHP 5.4
  • Cache for action selector (by user, role, section, nodetype)
  • Usability: new gallery viewer for nodetype image, new contextual menu system, breadcrumbs on XML editor, ...
  • Apache Stanbol for Xowl module

v3.5, 3rd quarter 2013

  • Usability: icons as fonts, new folder creation selector to be ever less intrusive, new folder name convention, ...
  • API REST with Linked Data support (possible Hydra)
  • JS cache
  • Installer with direct download of modules

v4.0, 1st semester 2014

  • wysiwyg for XML for tablets
  • Intelligent folders (sets)
  • Themes (xlyre)
  • Decoupled repositories
  • Portal Configuration Manager
  • ...

API REST + Semantic

A REST API for selected actions (CRUD of some node types) and publish of contents. After it, could be of interest to provide a semantic description of the API.

Generate different URL types

Today, URLs in ximdex are including the language and channel for deployment directly after the name of the document (node) generating something as index-iden-idweb.html

This URLs are automatically generated by pathto() and should be modified to conform different url types as:

  • no channel there, because it is the extension of the file (option during channel creation to tick if the extension has the identifier, guaranteeing there is only one extension for that type in a server path... channel for printing the document are not relevant anymore due to css, channels in ximdex are more related to technology frameworks -java, php- and usually are deployed in different sites)
  • language appears as a folder after the project name (root of the web as www/en/index.html and www/es/index.html)
  • language appears in the filename but could be removed for the main language (so index.html for english and index-ides.html for spanish)
  • support to cue files to allow the web server to select languages

Single request on Xedit

To improve performance, it's needed to perform a single request when editing a XML file with Xedit.

It would be a JSON object that contains the XML file, its XSL templates and its RNG schema.

Bad permits when apache tomcat is running on the same server

During the installation process, the installer script doesn't set the permits correctly if apache tomcat is running on the same server.

This causes that Ximdex CMS can't write on the logs directory and other critical warning.

Workaround: execute the perms.sh script like this:
$> (located on the Ximdex root path): ./install/scripts/perm.sh -a

The -a stands for automatic mode.

usability: new folder creation selector

Relax the number of nodes that are automatically created (table defaultcontents) when a new node for a nodetype is created, providing a visual selector of optional nodetypes to make them selectables.

Show a warning when the URL checking fails

Now, this error is strict. The installation process stops. The solution would be to give three options y for preceed,r for rename the host url and n for aborting the installation.

A Reflected XSS vulnerability in css_optimiser.php

Hello:
I have find a Reflected XSS vulnerability.

The vulnerability exists due to insufficient filtration of user-supplied data in "url" HTTP parameter that will be passed to "ximdex-develop/extensions/csstidy/css_optimiser.php". The infected source code is line 139 there is no protection on $_REQUEST['url'], if it contains evil js code, line 139 will trigger untrusted code to be executed on the browser side.
1

So if a attacker construct a special url as follow and send it to a victim, when the victim click the url, the code which is contained in the url will be executed on the victim's browser side to do some evil.
http://your-web-root/ximdex-develop/extensions/csstidy/css_optimiser.php?url="><script>alert(1);</script><"

The follow scrrenshot is the result to click the upper url ( win7 sp1 x64 + firefox 51.0.1 32bit ):
2

Discoverer: ADLab of Venustech

Testing an external package manager

The idea is to find a tool able to manage external dependencies/bundles/extensions for explicit set them in a config file and remove that files from the codebase.

Maybe bundler, maven, graddle or whatever similar able to do the job.

New Toolbox for cleaning text format

Add a new toolbox on Xedit to paste text from different sources (PDFs, ODT docs, websites, etc) and clean the implicit format elements.

Maybe a textarea would be enough for the first approach.

Cache for JS

due to the big percentage of javascript code in Ximdex a system for compacting or caching it could be of interest.

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.