click-count's People
click-count's Issues
Store web pages and stuff in connection.properties. Marshall to bean
Make url field optional. Generate url from server side.
Try store captcha data in session object rather than a synchronized map.
Don't use IP addresses with captchas. There are load balancer and proxies etc which breaks this
Dont return input data in services. Strip out-entries of in-data
Move reserved words check to rest classes
Since the logic layer should be unaware of the rest layer.
A link should not be able to reference a Click-Count-link.
Study: How do we prevent click manipulation?
Domain added must exist.
Add page(and possible more) dont load unless debuging mode in browser
Time limit between rest calls to prevent flooding
Use Googles recaptcha
Try changing FileServlet and ApplicationPath
FileServlet should start with "/pages" and ApplicationPath should be "/"
Web page and REST services should have a stronger connection
For example, we getting 404, redirect to error page with a key query paramteter, which is fetched with an ajax request to get the full data of the error message.
Store add date for url
Future: Do we need spam filter on redirection service?
Remove captchas?
WebUtil.exists return false on ftp directories.
Use the prettified and improved scheme.
This means updating all entities and DAOs.
Renamings
link -> sourceURL
url -> alias
Remove web page for this project(move it)
Remove LockManager when new db is complete
Basically, if something is already taken, let the db throw exception and catch it in the facade. From there, forward the error to the rest service which in turn return an appropriate response.
Consider using optimistic locks
Things we need to ask/learn more of
- How much logging do we really need?
- A way to report user?
- Banning users?
- Stop curling by random people?
- Can I use port 9000(non-80) for my server?
- What do I need to do to protect myself from hackers and other saboteurs?
If two people click on the same link at the same time, the click inc will be faulty
Logging
- The requests need to be logged.
- Hibernate logging must be turned to INFO or SEVERE.
LinkUtil -> WebUtil
Rename
EntityManagerFactory is not disposed on quit
REST API need to be compatible with html forms
Refactor captcha
- Move to new class
- New annotation to enable captcha
- New filter to handle the semantics
WebUtils.httpExists doesn't always work
For example, amazon rejects it when the page is actually working.
I think we have to download the entire page to actually check.
Tests for the view single services
Add services should require url.
Try redirect to other page without appending a protocol.
Remove Clicks table. Store everything in one long in URLs table
Logic for click manipulation
Click-Count will work with unique clicks. So one IP address can only increase the counter for a given URL once every hour.
Always respond with URL, just not increase counter if disallowed.
This logic should be done asynchronously to keep fast redirects.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.