File permission forbidden, but can be accessed when the name changed - linux

I've a web app where user can upload their ID card picture. When they upload the picture, I name the picture with [username]_[timestamp].[extension]
This is work fine for almost all of the picture uploaded. But there is a few picture, that when I try to access it in the browser, it says I don't have permission to access the file. One of the example of the file name is hsigit_2015-11-28 09:12:48.jpg.
The permission and the naming pattern is the same with any other file that can be accessed without problem. Only this file and several other (about 5 files) that can't be accessed from browser.
But when I change the name to something like eror.png, or eror12345.png, suddenly it can be accessed. But when I change the name to something like hsigit_2015-11-28.jpg or hsigit.jpg, it still can not be accessed.
Anyone know what might be the problem?

It may be a rule that forbids some pattern in file names? Maybe the word git?
Have a look at your http.conf and subsequents there is probably something like :
<Directorymatch "^/.*/\.git/">
Order deny,allow
Deny from all
</Directorymatch>
or Filesmatch. Adapt the pattern to meet your needs.

Related

Is it possible to prevent file from being copied? Or atleast know that the file has been duplicated/copied/moved?

In this case, i have image file like picture/video that contain sensitive content (my home cctv video). is it possible to prevent my file from being duplicated? Or atleast know that file has been duplicated/copied/moved. Example : i share the file to 2 different people and told them to not share it but it got leaked and no one wanna admit it, what can i do to prevent it?
ps: Sorry for the bad english, its not my first language
I tried search about hashfile but haven't found what I'm looking for

.htacces folder name with same file name?

I have a file in my webpage called news.
I did not write .html the end of the file, is this still correct? (the browser shows like html)
I want to make a folder in my server with the same name and put the articles there.
For example:
www.example.com/news ->>> this shows the main news page
www.example.com/news/article0101 --> this shows the article
If a user type www.example.com/news or www.example.com/news/ both must show the main news page.
In my webserver, I made all files without any extension.
I have read previous Q/A -s from this page and other pages and I have did not found a valid soulution to my problem?
Can I even modify the .htacces file in this way? Or I approach the problem in the wrong way?
Do I require a database or I just need files if I want to write articles?
Where can I find standard documentation for a webpage with articles and news?
Thanks very much your help

OpenCart - finding files

I am relatively new to OpenCart and need help locating the right files on Cpanel to customize site, most especially the home page. How do I locate a file name using Google Chrome Inspect element on storefront and then find the same file on my Cpanel File Manager? I am most especially looking for the html file on file manager for the home page. I would appreciate any advice.
Let me tell you the correct way.
Lets say your store URL is
http://demo.opencart.com/index.php?route=common/home
There are two parameters after route. They are
1st is folder
2nd is file
3rd is function
Since we know that this is the front end, so we will go in catalog folder in root. If you have to find the file in admin panel, you will check inside admin folder in root.
So http://demo.opencart.com/index.php?route=common/home is basically CATALOG FOLDER / common folder / home.php / function index().
If we have to search something in admin lets say http://demo.opencart.com/admin/index.php?route=catalog/category/add&token=43d61e31aa46a1e66b4bfe63181ebe85 so it is basically ADMIN FOLDER / catalog folder / category.php / function add().
Now if you go through the function, there will be a line at the end something like this.
$this->response->setOutput($this->load->view('common/dashboard.tpl', $data));
This is your tpl file. Go inside the views folder, templates, common, dashboard tpl. This is your desired file.
I know this is an old question, but sometimes it's harder to find what you are looking for in OpenCart.
I have been searching for someting for more than an hour. As it turns out, what I was looking for (PHP CODE), was written in DataBase for whatever reason in this oc_modification table as an XML-ish text.
So if you are having trouble finding some file, it actually might not be a file at all. Actual code snippet could be in DB.
I use opencart 3.x.
Easiest way to find something is by downloading whole project, opening it in notepad++ and using "Find in Files" tab. If you can't find it there, there is a big chance you find it in DB.
Open PhpMyadmin, go to current database for your project, press SEARCH button on top, put wildcard like '%YOURTEXT%', make sure to select "ALL TABLES" and click GO.

KML relative URL warning

I have this little piece of KML code which shows an image when clicked on the placemark, all images i have are store locally, and it works fine when using the .kml file it self.
Once the file is compressed into .kmz i'll get a warning (yellow marked) on the first line of the CDATA, covering some of my text.
It says: "This balloon may be using incorrectly formatted image URL"
All of my images works fine, they are not missing, and the relative URL is correct, but the syntax is not.
Anyone out there know of a solution to get rid of that hardcoded message ? or even better how to "tune" the code, so this warnings don't show :)
I've seen a couple of examples, stating it should help, but none suits my need, unfortunally.
This was some of the solutions i've looked at, but still not got it working.
Option 1: Fix the URLs
Your base URL is one directory down from where you thought it was, so you can simply add “../” to the beginning of each offending relative URL. This works fine in earlier versions of Google Earth as well, because older versions will look in both directories (and as a bonus, your content will render faster in older versions).
To fix the above example, we’d change:
<img src="images/image.png”>
to
<img src="../images/image.png">
Option 2: Add a <base> tag
As with any other browser, you can add a <base> tag to your HTML to set the base URL of that content. The href parameter of the <base> tag must be an absolute URL, so you’ll have to hard-code your server name and path. Adding the <base> tag to your BalloonStyle can fix all of your URLs in one go.
To fix the above example, we’d add: <base href="http://host.example.com/kmz/somelayer/"> to the BalloonStyle (or description, if we only have a few affected placemarks).
Option 3: Move the files
If you can’t change the balloon content, you can still correct it by moving the resources it points to into the correct locations. Depending on the URL, there are a couple of ways to do this. In our example, you’d move or copy the “images” folder and its contents to the KMZ archive. If the offending URL was “../files/another_image.png” (which should have been “../../files/another_image.png”), you could move or copy the files folder into the somelayer folder to fix the problem.
In many cases, though, there will be many layers all referencing the files folder, so moving the files folder into each layer folder can get tedious. If you have access to the web server configuration, you can solve this by adding an HTTP redirect from each incorrect location that redirects up a directory. You could also move the KMZ file up a directory, but this will change the URL that people must use to access your KMZ file.
I wanted to look at your KML to see if it was properly formatted and test it on my end.

XUL accessing resources and application structure

So I'm new to XUL.
As a language it seems easy enough and I'm already pretty handy at javascript, but the thing I can't wrap my mind around is the way you access resources from manifest files or from xul files. So I did the 'Getting started with XULRunner' tutorial... https://developer.mozilla.org/en/getting_started_with_xulrunner
and I'm more confused than ever... so I'm hoping someone can set me straight.
Here is why... (you may want to open the tutorial for this).
The manifest file, the prefs.js and the xul file all refer to a package called 'myapp', that if everything I've read thus far on MDN can be trusted means that inside the chrome directory there must be either a jar file or directory called myapp, but there is neither. The root directory of the whole app is called myapp, but I called mine something completely different and it still worked.
When I placed the content folder, inside another folder called 'foo', and changed all references to 'myapp' to 'foo', thus I thought creating a 'foo' package, a popup informed me that it couldn't find 'chrome://foo/content/main.xul', though that's exactly where it was.
Also in the xul file it links to a stylesheet inside 'chrome://global/skin/' which doesn't exist. Yet something is overriding any inline styling I try to do to the button. And when I create a css file and point the url to it, the program doesn't even run.
Can someone please explain what strange magic is going on here... I'm very confused.
When you register a content folder in a chrome.manifest you must use the following format:
content packagename uri/to/files/ [flags]
The uri/to/files/ may be absolute or relative to the location of the manifest. That is, it doesn't matter what the name of the containing folder is relative to your package name; the point is to tell chrome how to resolve URIs of the following form:
chrome://packagename/content/...
The packagename simply creates a mapping to the location of the files on disk (wherever that may be).
The chrome protocol defines a logical package structure, it simply maps one URL to another. The structure on disk might be entirely different and the files might not even be located on disk. When the protocol handler encounters an address like chrome://foo/content/main.xul it checks: "Do we have a manifest entry somewhere that defines the content mapping for package foo?" And if it then finds content foobar file:///something/ - it doesn't care whether that URL refers to a file, it simply resolves main.xul relatively to file:///something/ which results in file:///something/main.xul. So file:///something/browser.xul will be the URL from which the data will be read in the end - but you could also map a chrome package to another chrome URL, a jar URL or something else (theoretically you could even use http but that is forbidden for security reasons).
If you look into the Firefox/XULRunner directory you will see another chrome.manifest there (in Firefox 4/5 it is located inside omni.jar file). That's where the mappings for global package are defined for example.

Resources